Create Screen / Multithreading (more in description)

There is a new color palette creation screen that you are sent to when
you choose a photo. On this screen you can select your selection type
(Lasso / Crop / Entire Image) and select a region. At this point the
color scheme generation is started on an asynchronous thread. When it
finishes the colorscheme updates at the bottom of the screen and they
can save the color scheme. If they decide to make a new selection while
the asynchronous process is happening the previous process will be
cancelled and the new one started.

What this changed:
DrawingView is now separated from DrawImageActivity. DrawingView no
longer returns data, rather it just sets a private array of pixels.
DrawImageActivity is now responsible for saving and creating color
schemes. DrawImageActivity contains a DrawingView, so it just calls to
the getter on DrawingView's array of pixels rather than passing the
pixels through an activity result or intent.

Things currently not working:
X11Helper names for palette (Easy to fix, DrawImageActivity just doesn't
have an instance of X11Helper)

Crop selection's cannot be undone (Probably easy to fix, I haven't
looked at it)

The UI for DrawImageActivity is a little wrong

Things to be implemented:

A loading icon for when the algorithm is processing. Hides saving button
when processing.
New screen for creating palettes

A bit buggy currently, but bugs shouldn't be too hard to fix.

These changes resolve some outstanding bugs. The structure is changed so
that massive pixel arrays no longer have to be passed around, which
resolves an error from earlier.