Refactored callback execution into AbstractDataManagerTask

Originally, all the Tasks had copy/pasted code for running the callback
in onPostExecute. Now this is in AbstractDataManagerTask.
Changed Callback to have a parameterized type

Now there is more type safety. No more willy-nilly casting from Object
to the type you need. Also, the datamanager methods now expect a certain
parameterized callback so that types are safer. This prevents
ClassCastExceptions.

To use callbacks, now when you create them, you create a Callback<T>
where T is the type you expect to be returned. Eclipse should warn you
if T is not the type that is expected for a DataManager method.
Renamed singletoncontext in DM
Merge pull request #155 from linster/master

Increasted type safety on callbacks
Merge pull request #147 from stephenjust/get-remote-data

Get remote data
Do remote getting, setting of questions, and get rmeote question list.
Getting question list from remote source works!
Merge branch 'master' of https://github.com/CMPUT301F14T14/Project into get-remote-data

Conflicts:
	QuestionApp/src/ca/ualberta/cs/cmput301f14t14/questionapp/data/DataManager.java
	QuestionApp/src/ca/ualberta/cs/cmput301f14t14/questionapp/data/threading/AddQuestionTask.java
Question view now uses remote data.

There's a little bug in that you can see placeholder text for half a second
before the view populates. We should probably fix that eventually.