Reworked backend to support more file formats

Changes... uh....

We still only load from XML but now it's possible to extend the loader
to both text and binary. Should any other file formats become popular it
shouldn't be too hard to add those later either.

Functionality has been added to be able to properly load the page font
image without any hacks. Previously it was hard wired to one directory,
but now it determines it based on the given .fnt path.

The backend has been scattered across multiple files in order to make it
a bit easier to find things and organize future code.

A lot of documentation needs to be rewritten as a result of all this but
that's not the main priority.