Added some threading

Each AsyncTask inherits from AbstractDataManagerTask. Every place in the
DataManager where we do stuff with the remote datastore, we need to
create a task that does that. Then instantiate, pass context, and call
.execute() on it to run it in a different thread.

Pretty much everything in DataManager will map to one of these tasks.
The AddQuestionTask is an example to follow. Other tasks may require
UI-thread updating to notify views of changes. These go in the thread's
onPostExecute() method.

Notice the carreful use of getting q[0] in the variadic (by interface)
function.
Merge pull request #145 from linster/master

Added threading to AddQuestion.