* Don't store full font path when it's unnecessary

* Command line batch conversion

* Fix bugs

* >2 fonts (standard+unavailable+Hebrew, maybe)

* Optimise storage of duplicated bitmaps (e.g. e and e-with-some-accent,
  comma and semicolon, anything and fullwidth versions, etc)
  
* Optional antialiasing

* Right-to-left text

* Optional outlining (text with e.g. yellow fill and black outline
  is made by drawing the black outline font and then the yellow
  normal font)
  
* Work out when I should say 'character', when 'code point', and when 'glyph'

* Kerning


Unicodeness:

Many Latin-1 Supplement characters can be made from Basic Latin plus Combining Diacritical Marks. Storing the decomposed forms saves space in the texture, at the expense of longer and slightly more complex strings elsewhere.

Assume all displayed text comes out of the i18n system. (When displaying fixed strings, always use translate("$string")<<string)
Standard phrases/words can be decomposed during the conversion process. Names / untranslated phrases need to be decomposed (and cached) by the [C++] i18n system.

Advantages:
* Fonts can have smaller textures. 402 vs 695 glyphs, >25% less pixels required.
* Works easily when fonts have only standard (accentless) Latin characters, though not necessarily well (Need to investigate that).
Disadvantages:
* Strings require a bit more memory
* Processing necessary when displaying strings (=> [small] decomposition database in the C++ code)

But it looks really, really ugly.


Boldness:
Use SetTransform, 26.6, move fractional pixels