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
COMMON: WIP - Added touchmapper
ANDROID: Use Touch-event interface for touches and taps
ANDROID: Added some stuff to make deltas work
GUI: Allow the new touch-interface to be used to emluate mouse clicks
TOUCHMAPPER: Introduce Touchpad-mode
GUI: Add events for handling finger taps and movements
GUI: Allow the user to select a file without scrolling up the list
GUI: Change list-widget to work better with touch-events

This version of the list-widget uses a textdrawablearea for lists, enabling
smooth scrolling - pixel row by pixel row, when scrolling with gestures
GRAPHICS: Allow drawing on arbitrary surfaces
GRAPHICS: Add support for partial drawing of widgets

Now we can only draw parts of widgets, by specifying a drawableArea for
the widget. This commit only adds support for buttons to have a
drawableArea.
GUI: Introduce ScrollableCanvasWidget