Use pure-Python StringIO, not cStringIO

misc.psLib tries to subclass StringIO.  It doesn't work with
the cStringIO version.

Change doesn't seem to affect performance of CFF, which is the
biggest StringIO user.

https://github.com/behdad/fonttools/commit/7279302238a2d57d609cab45934615c4d959c88c#commitcomment-4767054
Simplify
Fix T1CharString decompile()

self.program is never None; it's set to [] if using bytecode.
So fixup the check.
Use "is None" instead of "== None"

The latter hits the __eq__ method and can fail because we now
do not allow comparing objects of different types.

For example, was failing subsetting Andika-R.ttf.
[subset] Handle non-existing ScriptList

As seen in CinzelDecorative-Regular.otf.
Convert warning to warnings module
Use True/False instead of 1/0
[subset] Add allowVID option to load_font()

Not enabled right now.
Handle out-of-range glyphIDs in ClassDef
Simplify Coverage table postRead
[subset] Minor
Minor
Minor
Fix SingleSubstFormat1 modulo math
Allow converting 'glyphXXX' to glyphID

There was an inconsistency: when allowVID was False, we were allowing
gid->glyphXXX, but not the reverse.  This was allowing some fonts to
be loaded, but then not to be written back.  Fix that.
Relax some warnings
[subset] Minor
[subset] Ignore out-of-range glyphIDs

We don't want to support out-of-range glyphIDs in cmap or GSUB.
Explicitly drop them.
Add symlink from Tools/fontTools to Lib/fontTools

This way, running tools inside Tools/ uninstalled will run against
the source tree version of the library.
Merge remote-tracking branch 'upstream/master'