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 be 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

Note: While the progress in data loading is sent, the progress dialog does not get updated.

Change-Id: I8e65e76ffb85ef00d77d05196aa14ba3e4c75c29
Action bar spiner instead of progress dialog; fix infinate loading;

Use the activities progress functionality to set a spinner in the action bar instead of a progress dialog
Keep count of the number of Start and Finished messages received to know when loading is finished.
 As these messages could come in any order and at any time, use an AtomicInteger to ensure thread safety.
 This should ensure that after data is finished being fetched, the loading spinner will disappear.
GerritURL: Add ability to construct project list request URLs; new string comparison method
Change visibility of menu items out of overflow

Change-Id: Iea0dcb11683b99bafd66f06212bdacc4649bd754
Added database foundations; Content Provider conversion

Added initial database classes, including Projects table.
Database files now end in '.db'
Projects table bug fixes
DatabaseFactory is a content provider
Fixes issue where the database would not change on changing gerrit instance
There should be no user interface/feature changes here, just A LOT of back-end
 improvements.
AndroidManifest: Registered Content Provider, don't export data

This change isolates only the changes to the database,
 up to the 'Content Provider conversion'

Patch Set 5: Fix build
Patch Set 6: add missing licenses

Change-Id: Ie885d852f7994dd3af71c1e8cc1c37496f4fd3c3
Database: Cleanup; Add Users table

Change-Id: I2db3490cfa156c913a95b525a7db4a3ab6859cc2
Working redesigned Projects List

Projects list searching support
Selecting a group in the project list with no children will select that project
Added StartingRequest message, broadcast when a request is being created
AndroidManifest: Removed unnecessary labels;
 Registered Content Provider, don't export data

Change-Id: I89598c600a77bcb4ad38da8def6447db0d9d78ee
Merge "Working redesigned Projects List"
Projects List: Dynamic Query responses

Add textwatcher to the searchview to listen for query changes
 and update the listview. Due to the way the expandablelistview
 is implemented, the listview will be collapsed on query changes.

Change-Id: If47b8d27fe3abc8550dd513110f5a2590826ed60
Projects list sync interval (Gerrit specific)

Only sync the projects list if it has not been fetched in within the specified interval
Added constants resource file to specify sync intervals
Added SyncTime database table for storing when syncs last occured

Change-Id: I7f341aa64701be623e7b728389ed63c1334ec220
Merge "Projects list sync interval (Gerrit specific)"
Database: Add more tables

Add Changes table for change overview information
Add FileInfo table for information about file state with a change
Add MessageInfo for comments about a change
Fix some table issues.

Change-Id: I049696f602da64e785ceef082cb5b996da0fd671
Respond to external sharedprefs changes

Manually check if the current project or the current Gerrit
 has been modified while the main activity was paused in
 onResume and call the appropriate callback.

Change-Id: I927ece502366193b4b604c8a076d9cab60dc9ee7
Gson deserialisation and refactoring

GerritService uses a more generalised SyncProcessor class to help with handling the different requests
The projects list is now deserialised by the Volley GsonRequest class
Added gson library to build.gradle
Added Project custom json deserialization
Added Reviewer (committer) custom json deserialization

Change-Id: I1af5659e782a272910c4499d7992cc6cc5ae3bcd
Use unified view for browser change diffs

Change-Id: If140bf6c92db1e0e39eb7f1b001050da5f4f625d
Added project list screenshots for mako (Nexus 4)

Change-Id: I982bf87b2cc26e3aa075f39a74f69ba8cac2013f
Merge "Added project list screenshots for mako (Nexus 4)"
Merge "Use unified view for browser change diffs"
Merge "Gson deserialisation and refactoring"
ProjectsList: Expand lists after search query changes

GerritControllerActivity: Gracefully handle a possible NullPointerException
when user backs out of a fragment before the tabs are setup.

Change-Id: I89de395fcfe30def57f9c846ccaa170860f5970c
add missing gson library

Change-Id: I1c08c5e697ea5c4a9d48ffe259e14cab2501ec9d
Signed-off-by: Dirk Rettschlag <dirk.rettschlag@gmail.com>
Commit list database implementation

Added virtual User_Changes join table for multi-table querying support
Projects table: Add full path as PK column due to sqlite database limitations and foreign key constraints
Other database updates (table updates and actually dropping all of the created tables on upgrade)
Use changeID instead of legacy commit id for querying full change details
CommitterObject: Add equals method to optimise insertion of users during commit processing
Projects Sync: Always sync if there is no projects (in case something goes wrong)

Change-Id: I738fcdfff471b70cb3620997a4a7b34f1356d720