Callback Model for DataManager Tasks

Brittany, Cody, Stephen, and Stefan have massively refactored the DataManager. 

This Pull Request is removing any delegation in the DataManager to ClientData. ClientData has expanded. 

Ryan: Please see us in Compe Club today so we can explain the new DataManager and how it will be threaded. 

The DataManager tests do not run at the moment. There is no point in testing unfinished code with an unfinished API. 

Since the data manager is unfinished, do not merge this pull request into master. It will break everything and cause merge conflicts. If someone is intrepid enough, then it could be merged into a branch of the central repo. The main purpose of this PR is so that everyone can see what is happening.