Address U. F. O. shortcomings.

This attempts to address a number of issues mentioned in #1653, specifically the dropping of version data, the changing of glif names, and the reversal of reference and anchor orders. It also enables layered U. F. O. output in certain limited contexts outside of the specification.

It's okay to misspell variable names and function names, but other software packages depend on these names having correct spelling.