Created a DBUpgradeTask which creates a worker thread for DDL execution.

Since all database setup and upgrades occur via DDL statements stored in
local files, complex setups may take a little bit longer. This will
create a worker thread for these setup and upgrades ops. The user will
see a notification on the screen stating that an upgrade is in progress
and an indeterminate progress indicator is displayed.

In addition to these database updates, the SplashScreenViewController
now creates a thread that waits for upgrades to complete if necessary in
addition to the splash time. The waiting occurs on this seperate thread.
Once both conditions have been satisfied, the splashs creen invokes
hideSplash() on the main thread. ViewController will then retrieve the
database info AFTER the SplashViewController is hidden via
viewDidAppear().

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>
Fixed blend-mode bug that occurs when switching from fill to erase mode.

If you were to switch to erase mode during the middle of a flood-fill
op, the fill would occur in erase-mode. In other words, the fill would
actually erase the area it was meant to fill! This commit changes the
blend mode to normal when a flood-fill is actuall being added to the
canvas. Then it switches back to the last blend mode after the fill
operation is complete.

Signed-off-by: Byron Sanchez <bfs5030@gmail.com>