Minor
Typo
Fix cmap subtable format 4 compiling

Was failing all these years, if a idDelta value happened to be
exactly -0x8000...

Test case: roundtripping MTLmr3m.ttf.
Simplify cmap subtable format 4 idDelta code
Merge branch 'master' of https://github.com/behdad/fonttools
Merge branch 'master' of github.com:wenzhuman/fonttools
Fix rangeShift calculations for count=0 in sfnt, cmap, and kern
Refactor getSearchRange()
Fix post table glyph name dedup logic for edge case

This is a followup fix to 85be2e0a9773acec3c6d14c345b1fd94ab3aa5c3
Before this change, if some glyph names had a "#-number" suffix in
the post table, we could generate duplicate glyph names.  Fix that,
even though "#" is NOT a valid character in PS glyph names.
Change cmap-based duplicate-name resolution from n^2 to linear time

Similar to 85be2e0a9773acec3c6d14c345b1fd94ab3aa5c3, though much
harder to hit.
Apply fixes from 'hhea' to 'vhea'

Maybe they should be merged...
Merge branch 'master' of https://github.com/behdad/fonttools
add graphics states