Fixes Text Drawing and Other Improvements

GM8.1 and Studio have different behavior for rendering out of range characters, GM8.1 assumes the behavior of most fonts and text editors treating them as a ' ' space, Studio on the other hand treats them as NULL or ''.

This issue was discovered in and partially resolves #647

This does however add a lot of warnings for comparison of signed and unsigned integer types as a result of the if statement, I am open to improving it before it is merged. The warning is the result of the string contents being signed types and glyphStart and glyphCount in fontstruct being unsigned. Because of this we should perhaps consider changing the fonstruct types for those members to signed integer types.