Fix #303
Pixel-accurately clip characters to the available space instead of omitting whole characters that stick out.

In addition to being a prerequisite for shadowed text, this also fixes an issue sometimes seen at the bottom of the mini KI player list where characters with a descender were missing.
Use premultiplied alpha for plDynamicTextMaps on GUI controls.

This fixes the irregular dark fringes around light text when not exactly pixel-aligned that are caused by independent interpolation of color and alpha. It also makes calculations simpler for things to come.
Implement shadowed text rendering.

Intended to make KI text (player list and chat) better readable on light and patterned backgrounds. In this WIP, all text on GUI controls is rendered shadowed.
Link shadowed text rendering to the plDynamicTextMap::kFontShadowed flag.

Conveniently enough, this existing but unimplemented flag is already set mostly the way we want it in the current PRPs.
Undo the kRenderJustXForceLeft bugfix of 4 commits back.

The fix (adding adjustment of fRenderInfo.fDestPtr) made kRenderJustXForceLeft behave as intended (left-aligning the edge of the bitmap rather than the side bearing of the first character) but cuts off shadows in some places (e.g. at the left edges of "BUDDIES" and "NEIGHBORS" in the mini KI). To ensure enough space for the shadow, and considering that all content was developed and visually optimized with the bug in place, it seems better to preserve the buggy behavior and make kRenderJustXForceLeft work exactly like kRenderJustXLeft.
add python api to set flags

Clean up unwanted changes caused by IDE extension -.-

Reworked implementation
Move methods to pyGUIControl to pyGUIControlTextBox.
Fix ptGUIControl.setFontFlags().
Fix comment Hoikas
Make font flags available to Python in PlasmaConstants.
Const getters
Merge pull request #392 from Lunanne/textrendering-clean

Textrendering clean