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
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.
THEME: Add back entry for color when hovering over button
Merge pull request #361 from rundfunk47/guiimprovements

GUI: Various GUI Improvements