Text: synchronized function parameter naming with documentation.
Text: no need to explicitly specify Z coordinate in 3D text.

The coordinate is always 0 and Mesh can be configured to add it
implicitly. The code is now nearly the same for 2D and 3D, will redo it
without templates later.
Text: non-templated base for TextRenderer.

Saves a lot of duplicated generated code.
Text: moved TextLayouter from TextRenderer internals to Font header.

Preparation for the whole thing to be testable, moving
implementation-dependent (FreeType/HarfBuzz) things together.
Text: moved FontRenderer into Font header.

Now everything related to FreeType and HarfBuzz is in one header.
Text: abstract base for fonts and layouters.

Font and text layouting is now abstracted out from its implementation.
Font class is renamed to FreeTypeFont and all the work can be done
through AbstractFont and AbstractLayouter interface.
Text: split out HarfBuzz layouting into new HarfBuzzFont class.

It now allows to transparently select between FreeType and HarfBuzz
layouting. The new class is built only if USE_HARFBUZZ is enabled.
Text: off-by-one mistake.

Not exactly an error, because reserving one byte more doesn't harm
anything, but probably result of earlier copypaste from prerender().