Change GerritTask to broadcast state changes

This decouples UI feedback from GerritTask so it can be managed instead by the associated activity.
It also removes the necessity that GerritTask is an AsyncTask.

Added the different message types (classes under message/)
Added main abstract message type GerritMessage
Added DefaultGerritReceivers which contains default (from GerritTask) broadcast listener behaviour
Added listeners for GerritControllerActivity and ProjectsList

Note: While the progress in data loading is sent, the progress dialog does not get updated.
Also, the new ProjectsList is broken. GerritTask needs to be called directly from the UI thread as it is an AsyncTask
and not from a loader.

Change-Id: I8e65e76ffb85ef00d77d05196aa14ba3e4c75c29