GRAPHICS: Added changes and improved code from inisider/scummvm (partial text)

Includes code from https://github.com/inisider/scummvm/ , which has been
squashed and bugfixed
GRAPHICS: Add support for Soft Shadows with rounded squares
GRAPHICS: Shadows on tabs
GRAPHICS: Change soft-shadow calculation to not use doubles
GRAPHICS: Gradient blending on borders of rounded squares
GUI: Fix about-dialog to display an additional row of pixels
GUI: Add comment about why we draw an additional row of pixels
GRAPHICS: Simplify VectorRendererSpec::drawString.

This removes the two additional copy steps for rendering when a drawable text
area is specified. Instead it uses Surface::getSubArea to draw directly onto
_activeSurface.
GRAPHICS: Unify drawing paths in VectorRendererSpec::drawString.

Formerly, the behavior between when a drawable area was specified and when not
was different in a sense which is not expected. For example, when an empty
textDrawableArea was passed and the text could be drawn outside the 'area'
specified. While when a textDrawableArea covering the whole screen was passed
the text was clipped inside 'area'. Now, the code does follow the latter logic
in both cases.

I am not sure whether this will cause any issues, but a quick check of the
launcher and options menu didn't reveal anything...
GRAPHICS: Increase robustness of VectorRendererSpec::drawString.
Merge branch 'guiimprovements' into gsoc2013
GUI: Use textdrawablearea for lists, enabling smooth scrolling