Handle and warn about out-of-order Coverage table entries

Apparently the SIL Gentium fonts have wrong sorting in Coverage
tables.  That's broken by the spec, but shapers still work with
such fonts.  So, we warn when reading, and when writing, such
out-of-order coverage tables.
Fix parsing of hinting instructions that end in a PUSHB

Sounds useless, but MReifutaiM-Regular.ttf seems to have that, and the
parsing back from XML was failing because we expected a token whereas
after dropping whitespace there wasn't any left.
Switched VCS from Subversion to git.
Support for OS/2 table version 5 as proposed by Microsoft
https://github.com/fontforge/fontforge/issues/956
[subset] Protect against missing rulesets

Fixes subsetting Molengo-Regular.ttf.
Catch TTLibError raised when missing (or wrong) -y argument on a ttc file
[subset] Fix against missing AttachList entries
Make BaseTable a new-style object
Load all OpenType sub-structures lazily

Huge win for subsetter and anyone else who doesn't need the entire
tables.  Subsetting a huge font (eg. NotoSans-Regular.ttf) to a
small set (say, main Cyrillic characters) is something like six
times faster now.  Bulk of time was being spent in blowing up the
GPOS kerning pairs and attach points.  Now we don't load those if
they won't be in the final subset.

Slight slowdown for usecases that need the entire table.
Minor
When lazy-loading tables, copy ValueFormat

Otherwise it may be overwritten before we use it.
Minor
Remove tableStack in favor of countVars

We only needed tableStack to look back for counts.  So, just store
counts.  Gives ~8 speedup for large fonts I tested.  We are not
faster than not loading fonts lazily without this patch, so the
laziness patch combined with this doesn't have a net negative
performance impact anymore.
Make ValueRecordFactory() immutable

Gives another 3% speedup.
Use slots for OTTableReader

Slight performance gain even.
Remove script to build otData.py

The was was originally generated, but is static now and this
allows cleaning it up and modifying it.
Remove unused "LONG" converter

LONG was replaced by Fixed long time ago.
Remove USHORT vs uint16 inconsistency
Remove Fixed vs fixed32 inconsistency
Improve Version handling

Version is really just a major.minor, NOT a Fixed.  But it has
been implemented as Fixed.  We now:

  1. Check that major is 1,
  2. If minor is not 0 (only defined for GDEF so far), then
     print the whole thing as hex in XML,
  3. When reading the XML, accept hex,
  4. In all four methods dealing with Version, support both
     fixed version (ie. 1.0), and long version (ie. 0x00010000).