Update to Lollipop and add backwards compat. to Gingerbread MR_1

Added support library and fixed some combatibility issues.
Uses compatibilty Fragments and Activities along with the AppCompat
ActionBar.
Add undo/redo system

Compresses differences between bitmaps (XOR) using
run-length encoding and stores them in a list.
Improve tool interface

The Tool class now executes code that was being repeated
by the subclasses such as checking the cancelled variable.
To achieve this it calls an associated abstract function
within each of the start/move/end functions for subclass's
implementation.

Command's end() function now returns a Path which
represents the final path taken by the tool at the end
of the lifecycle of that operation. This improves the
undo/redo system, as we don't commit drawing that took
place off of the bitmap. It also enables selection
tools.
Fix zooming pushing items to undo stack

All touch events to the surface caused items to be pushed
to the undo stack, this has been fixed.
Fix MenuItem related crash on API < 11

Replaced non-existant API call with a support library equivalent,
'supportInvalidateOptionsMenu()'