[ot-font] Don't select a Null cmap subtable

Can happen either in broken fonts, or as a result of sanitize().
Move try_set to sanitize context
[ot-font] Work around broken cmap subtable format 4 length

Roboto was hitting this.  FreeType also has pretty much the
same code for this, in ttcmap.c:tt_cmap4_validate():

    /* in certain fonts, the `length' field is invalid and goes */
    /* out of bound.  We try to correct this here...            */
    if ( table + length > valid->limit )
    {
      if ( valid->level >= FT_VALIDATE_TIGHT )
        FT_INVALID_TOO_SHORT;

      length = (FT_UInt)( valid->limit - table );
    }
[ot-font] Use binary search for format12 cmap subtable
[ot-font] Fix cmap EncodingRecord cmp order
[ot] Add TODO re zero-len MultipleSubst sequences
[gsub] Minor shuffling
[gsub] Adjust single-length ligature subst to act like single subst
[indic] Don't reorder reph/pref if ligature was expanded

Normally if you want to, say, conditionally prevent a 'pref', you
would use blocking contextual matching.  Some designers instead
form the 'pref' form, then undo it in context.  To detect that
we now also remember glyphs that went through MultipleSubst.

In the only place that this is used, Uniscribe seems to only care
about the "last" transformation between Ligature and Multiple
substitions.  Ie. if you ligate, expand, and ligate again, it
moves the pref, but if you ligate and expand it doesn't.  That's
why we clear the MULTIPLIED bit when setting LIGATED.

Micro-test added.  Test: U+0D2F,0D4D,0D30 with font from:

[1]
https://code.google.com/a/google.com/p/noto-alpha/issues/detail?id=186#c29
Add missing test file.  Oops
Don't use -mstructure-size-boundary=8 on clang arm

As in building for Android / iPhone.  Only set it if
struct{char} alignment is not 1.

NOT tested on an actual Arm architecture.  Guess we'll know
when this makes it to people's build bots.
[indic] Minor
[indic] Improve base re-finding

No test numbers change.
[indic] Recover OT_H undergone ligation and multiplication

Sometimes font designers form half/pref/etc consonant forms
unconditionally and then undo that conditionally.  Try to
recover the OT_H classification in those cases.

No test number changes expected.
Fix malayalam issue

I'd write the details but this margin is too narrow.
(aka have to run out, will add test and commit message next week.)