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.
Merge pull request #155 from linster/master

Increasted type safety on callbacks