'cmap' format 4 not using correct counts for startCount, others.

Changed to use segCountX2/2 for the other 3 variables.  Also removed
the additional spaces from "segCountX2 / 2", as this caused strange
parse errors on following definition lines.

Also found that the OFFSET to _subtable's was not being computed correctly
and so changed the form for that line until working.  This affected all
cmap format subtables.
Make GSUB MarkFilteringSet conditional as per spec

Surround field definition with check on controlling flag bit
'name' table now extracts the name strings

The 'name' table had not been finished, with speculative comments about
how best to extract the name strings which were doubly-offsetted.  A way
was found to do this...
'cmap' extra array removed

Removed "_subtable[numTables] subtables" at end of the cmap table
definition as unnecessary.

This was reading the encoding tables again, apparently to "finish reading"
to the end of the cmap table.  However there is no guarantee that there
are 'numTables' count of tables there, only that there will be 'numTables'
count of 'encodingRecord' *entries*.

This is because the encodingRecord entries may re-use tables, as seen in
this cmap dump:
       0000                      version
       0005                      numTables
       0000   0003   0000 0224   platformID encodingID   offset
       0000   0004   0000 10ea
       0001   0000   0000 002c
       0003   0001   0000 0224
       0003   000a   0000 10ea
Two of the entries re-use tables, so while there are five entries,
there are only three encoding tables.
Implement 'GPOS' table and subtables

Some subtables common to GPOS/GSUB/JSTF were not separated out from
the GSUB table definition as initially implemented.  The definitions
found in the Layout Common Table Formats document are moved higher
and expanded.
   _ScriptList
   _FeatureList
   _ClassDefTable
   _CoverageTable

DefaultLangSys was not understood to be an offset to a subtable.  That
has been fixed, but that fix then required moving _LangSysTable higher
to be referenced by both DefaultLangSys and LangSys.

Added the common GPOS tables Anchor and MarkArray to beginning of GPOS
definition.  Unfortunately the ValueRecord definitions are excessively
wonderful and have to be repeated at each individual usage. (Referencing
the correct controlling ValueFormat flags value is difficult)

Added the GPOS Lookup subtables.
   Seen correct at least once:
        LookupType 2: Pair Adjustment Positioning Subtable
        LookupType 4: MarkToBase Attachment Positioning Subtable
        LookupType 6: MarkToMark Attachment Positioning Subtable
   Not yet seen:
        LookupType 1: Single Adjustment Positioning Subtable
        LookupType 3: Cursive Attachment Positioning Subtable
        LookupType 5: MarkToLigature Attachment Positioning Subtable
        LookupType 7: Contextual Positioning Subtables
        LookupType 8: Chaining Contextual Positioning Subtable
        LookupType 9: Extension Positioning

The implementation of GPOS LookupType 9 is a guess to be sure.

There is apparently no way to express "array of OFFSETs".  This caused
problems for
    GPOS LookupType 4: MarkToBase Attachment Positioning Subtable
    GPOS LookupType 5: MarkToLigature Attachment Positioning Subtable
    GPOS LookupType 6: MarkToMark Attachment Positioning Subtable
    GPOS LookupType 7: Contextual Positioning Subtables          Format 3
    GPOS LookupType 8: Chaining Contextual Positioning Subtable  Format 3
The 'solution' implemented was to make the array an array of entries, where
each entry would then say it was an OFFSET.  This introduces an additional
layer of object references.
Merge pull request #8 from tshinnic/review_opentype_spec1

Review opentype spec1