Removed CompleteQueuedEvents() from DataManager

Started working on UploaderService. Seems like everytime Android tries
to help you (like with IntentService), it's severely limited and doesn't
do what you want.
Commit before changing interface.

AbstractEvent will gain a Retry() method. This way, the QueueClearer can
use polymorphism instead of a horrible switch-case.
Added a retry() method to Tasks

No more horrible switches on types. Polymorphism ftw.

If you are implementing a new task in the system, don't worry about what
DataManager dm is for the retry() method. UploaderService supplies it
when needed.
Changed the eventbus to use a BlockingQueue.

BlockingQueue has some nice thread-safe features.  Read the huge block
comment on what I did inside completeQueuedEvents() in the QueueCleaner.
There's some very fancy footwork to prevent infinite looping while
offline.
More updates.

RemoteDataStore.hasAccess() now does stuff and is required.
@StephenJust, take a look in UploaderService.java to see how its needed.
I'm not sure trying something network-related, then catching an
IOException within the logic I have is better than just having
.hasAccess() poll the system.

There's a little bit of sleeping evilness on how the service runs. If
offline, it sleeps for a while, then tries again. Not ideal, but we're
running out of days to do StopServiceOnResult(int), then restart the
service later, and do fancy stuff.
Moved startUploaderService() back to DataManager

The method will live here.

The tasks are about to be refactored. AbstractDataManagerTask will gain
a method that does the equivalent of all the EventBus....addEvents()
now, but will also run DataManager.startUploaderService().  I didn't
want to pollute EventBus with holding an application context and
overload it into starting services.
Little bit of shotgun surgery

The individual tasks no longer talk to the eventBus, but use a method in
AbstractDataManagerTask to do the same thing. This new method,
tryPushLater(), also starts the uploaderService.
Fixed hasAccess() thing

UploaderService just sleeps.
Merge pull request #180 from linster/master

UploaderService is now a thing.