Add many tools and drawing optimisations

The rectangle and eraser tools have been created, as well as a
partial implementation of the magic wand tool. The text tool
now has a temporary TextView based icon. Selection tools now
have a 'Select all' menu item. Using workarounds, the Pen tool
can now draw individual pixels reliably. Using more
workarounds the two shape tools can now draw above and to the
left of the top and left boundaries.

The flood fill tool has been sped up by using Bitmap.setPixels()
(also used by the magic wand). GPU overdraw has been greatly
reduced, especially in the main drawing area (no overdraw!).
Finally the app starting window and ActionBar logo have been
updated slightly.
Add simple layer support

The Layers panel can be accessed through an additional
ActionBar icon. Some layouts aren't complete and this breaks
the undo system.
Fix undo system when using layers

The undo system now supports undoing layers.
It can also be more easily extended to support other
types of undo operations.
Fix draw op undo bug

Pixels with an alpha of 0 were losing their RGB components
after being XOR'd. The cause was Bitmap.setPixels() storing
the colour data as premultiplied RGB (premultiplied with 0).
The fix required spliting the xor() function into two,
one that inserts the pixels back into a Bitmap using
Bitmap.setPixels() (used when undoing/redoing a draw op,
losing the RGB components in order to draw makes sense) and
another that doesn't (used when adding a draw op to be
compressed, we must retain the RGB components in this case).
Add licence