Refactor pal label drawing so that text drawing routines...

...are separate from the placement routines. This allows text to be drawn manually, opening up the text drawing with all its nice formatting options to be used by other parts of the code base (eg, composer). The new QgsPalLabeling:drawText routine can be used to draw formatted text within a specified rectangular area into a QgsRenderContext.