EMI: Correct problems with text positions and word wrapping.

These patches are a WIP, but correct some of the observed issues with text rendering in EMI:

1. Rebase Botje's work to add X and Y parameters to the textObject
2. This patch isn't really required, but it fixed a segfault I found when playing with MakeTextObject
3. When getting the name of the userdata object for printing, the retail version uses a hex value instead of the decimal. This just changes Residual to match this behavior.
4. The color encodings in the retail version have an alpha channel (I guess?) appended to the front. This makes the encoding match EMI.
5. In EMI, the text box seems to go on the other side of the bounding box.
6. The width value is the kerned width, while the dataWidth is the actual width of the bitmap font character. When determining the width, use the kerned width instead of the actual width for wrapping.
7. Commenting this out makes the line spacing correct for the wrapped lines. I need to figure out how to reproduce the crash with the copy of GRIM that I have to figure out the correct fix for this.
Instead of this, you could switch around y1 and y2 in the implementation of getBoundingBox() in the renderers.