FontCanvas: better compensation for decenders
Implement rudimentary alignment handling for TextSpans
Add debugging functionality for visualizing layout rects
TextArea: Implement hover color change for dialog options
TextContiner: add more debugging capabilities

drawing of exclusion rects in solid red, layout rects are now green outline
drawing the actual sprite boundaries in white outline
TextRendering: fix exclusion layout and canvas calculation for non-single line renders
TextContainer: separate the concept of current size and max size
Gut TextArea

I know this is slopy, but its just easier to gut it all now and rebuild as needed
The portrait label should be centered

it was right aligned before becuause of the 5 px font padding that was enforced on every string.
Font: fix not stopping when we should

no need to keep printing when the print location is out of the canvas
TextArea: take the fonts at construct time

now we can setup the text containers from construct time
TextSpan: tweaks to ivar semeantics

allow NULL palette and take from the font if NULL. the text buffer should only hold the string that is actually rendered, not the entire string passed.
also render the span at construct time. spans are meaningless if they arent rendered so we save nothing by using lazy instantiation of the sprite.
TextArea: reimplement drop caps

basically create a cap span with the first char, then a second single line span directly adjoining it, followed by a third span, right aligned, filling the space below the first line and to the side of the cap.
finally append any remaining text as a fourth span.
Font: minor tweaks

skip spaces at the beginning of a line
less complex logic for blitting and counting characters
TextSpan: acommodate newline spans

the sprite for a newline char would be NULL so avoid problems by setting the frame to -1 (max value for unsigned) and the line height
this has a problem that it assumes the text will only be a single newline!
Font: tweak font creation

try to isolate hacks to the FontManager
BAMFont: get line height from "magic" glyph
Font: take palette at construct time
Font: fix some string iteration bugs

the character count was off by one due to treating npos as if it were a space.
also we should only increment x by a space if wordBreak is not npos
this fixes numeric fonts from attempting to print the space glyph (they dont have it) and incorrect width calculation
Region: fix off by one error in Intersect test

basis for change:
drawing a Region(0,0,10,10) and testing intersection with Region(10,0,10,10) would yield true even tho there is no overlap in the blitted rectangles. Region(11,0, 10, 10) was false as expected, but with a 1px gap between rects on screen. We should be able to have neighboring rects that "touch" without intersecting.

If this logic now seems odd, then we need to adjust the drawing code instead
Scrollbar: frames are asserted to not be null during construction.
StringMgr: add ability to get both c strings and String objects