Corrections to MeasureCharacterRanges, improvements to DrawString / MeasureString, fixed GdipDrawImageRect
* text-cairo.c:
MeasureCharacterRanges now counts LF, CR, tab as characters for measuring a CharacterRanges. Also utilises layoutRect.
MeasureString now deals with all alignment, rather than DrawString. Doing so has meant that StringAlignment can now work correctly. Also handles boundingBox better.
DrawString has been changed to work with the changes to MeasureString.

* image.c:
GdipDrawImageRect has been changed so that it doesn't translate a metafile a second time. Previously it drew it at (x, y) and then translated it by (x, y), so the translation has been removed.
Wasn't visibly drawing many WMF files, but fixed with the following:
 * Added a new drawing instruction / record (METAFILE_RECORD_DIBSTRETCHBLT) which is substantially the same as METAFILE_RECORD_STRETCHDIBITS
 * Corrected parsing of certain values so that they're treated as signed instead of unsigned, including adding a GETS macro to complement the existing GETW but returning a SHORT instead of a WORD
 * Fixed scaling for drawing to a specified size and improved translation at the same time
 * Corrected handling of the DIB BitmapInfoHandler ImageSize field -- it now calculates the value when compression is not used (Compression field = 0 / RGB)

Also changed printf to g_warning in metafile.c and wmfcodec.c so that I could see the messages that were being printed when testing via Mono applications.