Fix some declarations/inclusions
Merge pull request #1783 from jtanx/fixings

Fix some declarations/inclusions
Don't make whitespace invisible in Emacs
Merge pull request #1784 from rrthomas/see-whitespace

Don't make whitespace invisible in Emacs
sfd: add the same whitespace for m SplineSet elements
Merge pull request #1789 from adrientetar/sfd-whitesp

sfd: add the same whitespace for m SplineSet elements
Stop trying to read special class kerning values when the arrays are not allocated.
On reading an S. F. D., disable control points on line segments.
Merge pull request #1790 from fontforge/issue_1786_frank_1

Stop crashing on U. F. O. export when special class data is absent.
Revert "sfd: add the same whitespace for m SplineSet elements"
Merge pull request #1793 from fontforge/revert-1789-sfd-whitesp

Revert "sfd: add the same whitespace for m SplineSet elements"
ufo: fix a copy-paste error

CR-fixed: 1243546.
Merge pull request #1795 from fontforge/issue_1785_frank_1

On reading an S. F. D., disable control points on line segments.
Merge pull request #1787 from adrientetar/derps

ufo: fix a minor copy-paste error
Fix some flattened paths from earlier Red Hat experiments.
Merge pull request #1796 from fontforge/abstract_rpm_paths_1

Fix some flattened paths from earlier Red Hat experiments.
Guard against crash on truncated/short TTF files

Given a short TTC font file - truncated from MBs to just 150KB - routine
`PickTTFFont()` in `fontforge/parsettf.c` crashed on a NULL pointer.
This was found as a consequence of PR #1780 issue #1779.

Much input handling of TTF file data in `fontforge/parsettf.c` is not
very cautious, and assumes a valid TTF/TTC file.  At a minimum some
additional checks are needed to guard against outright crashes on
short files.

Routine `TTFGetFontName()` was not checking against seeking to or
reading from areas past the end of file. This change forces return of
NULL in more error situations. This routine could be called from more
than a couple places and so needs its own separate checking.

Routine `PickTTFFont()` was not well-prepared for `TTFGetFontName()`
to return NULL instead of a font name string.  If such was returned
the `offsets[]` and `names[]` arrays could get out of order, potentially
selecting the wrong font.  And a NULL pointer could get handed to
`strcmp()` causing the crash.

Additionally, an index number as a font selector appended to filenames
was not checked against valid font index bounds.  And some commentary
describing `PickTTFFont()` was added.

`readttfheader()` is changed to guard against use of incomplete TTF
tables.  When first scanning the table entries in the TTF header, once
a table's offset and length are retrieved, these are checked against
the file's length.  If out-of-bounds a message is logged and the table
info is not processed.  While guarding against crashes this could
confuse users who might not recognize that large amounts of information
have gone missing.  Example error message:
    Table 'glyf' extends beyond end of file and must be ignored.

Note some possible remaining problems with this change:
  - substitution of string "<no name>" on missing/invalid font name
      in TTC file; is there a better substitute name? e.g. "fontname3"?
  - guarding against incomplete tables only logs errors and skips tables
  - no good check against too many missing tables in `readttfheader()`;
      there should be a "go / no go" decision as to whether a TTF file
      is simply not usable; (`ValidateTTFHead()` merely complains, but
      does not prevent an invalid file against processing!)
  - end of file bounds checking not done inside `PickTTFFont()`
  - many many other code sections need guards/checks for safety's sake
Stop trying to access standard layer items when in multi-layer mode.
Merge pull request #1799 from fontforge/multilayer_charview_crash_1

Stop trying to access standard layer items when in multi-layer mode.
Change extrema to bright green.