Splitted font rendering abstraction layer

 - Font structure has internal state
 - Lowlevel functions for loading a glyph, getting its dimensions
   and a rendered representation
 - High level functions (get text extents, draw text on canvas use
   lowlevel functions and do not touch freetype)
 - UTF8 functions, independend of font handling got moved
Made freetype font rendering abstraction more lowlevel and split it up

 - Font abstraction only offers functions to load/measure/render a glyph
 - Higher level text extents functions moved to skinning system
 - Higher level text rendering functions moved to canvas code
 - Removed public stencil blend interface (only used for glyph
   rendering)
 - Moved UTF8 handling code into own header/source file