[Indic] For scripts without Half forms, always choose first consonant as base

In such scripts (ie. Khmer), a ZWJ/ZWNJ shouldn't stop the search for
base.  So, instead just choose the first consonant as base directly.

Test sequence:
U+1798,200c,U+17C9,U+17D2,U+179B,U+17C1,U+17C7
diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc
index 70068ae..2690511 100644
--- a/src/hb-ot-shape-complex-indic.cc
+++ b/src/hb-ot-shape-complex-indic.cc
@@ -352,35 +352,46 @@
       has_reph = true;
     };
 
-    /* -> starting from the end of the syllable, move backwards */
-    unsigned int i = end;
-    do {
-      i--;
-      /* -> until a consonant is found */
-      if (is_consonant (info[i]))
-      {
-	/* -> that does not have a below-base or post-base form
-	 * (post-base forms have to follow below-base forms), */
-	if (info[i].indic_position() != POS_BELOW_C &&
-	    info[i].indic_position() != POS_POST_C)
+    if (basic_mask_array[HALF])
+    {
+      /* -> starting from the end of the syllable, move backwards */
+      unsigned int i = end;
+      do {
+	i--;
+	/* -> until a consonant is found */
+	if (is_consonant (info[i]))
 	{
+	  /* -> that does not have a below-base or post-base form
+	   * (post-base forms have to follow below-base forms), */
+	  if (info[i].indic_position() != POS_BELOW_C &&
+	      info[i].indic_position() != POS_POST_C)
+	  {
+	    base = i;
+	    break;
+	  }
+
+	  /* -> or that is not a pre-base reordering Ra,
+	   *
+	   * TODO
+	   */
+
+	  /* -> or arrive at the first consonant. The consonant stopped at will
+	   * be the base. */
 	  base = i;
-	  break;
 	}
+	else
+	  if (is_joiner (info[i]))
+	    break;
+      } while (i > limit);
+    }
+    else
+    {
+      /* In scripts without half forms (eg. Khmer), the first consonant is always the base. */
 
-	/* -> or that is not a pre-base reordering Ra,
-	 *
-	 * TODO
-	 */
+      if (!has_reph)
+	base = limit;
+    }
 
-	/* -> or arrive at the first consonant. The consonant stopped at will
-	 * be the base. */
-	base = i;
-      }
-      else
-	if (is_joiner (info[i]))
-	  break;
-    } while (i > limit);
     if (base < start)
       base = start; /* Just in case... */