DataManager, LocalDataSource & Associated stuff

I think that the DataManager & LocalDataSource stuff is working well enough that we can integrate it at least. Still needs more work, but the basic methods seem to be working correctly, if not in the most efficient way possible.
I also implemented a version of this, sans hacks if we want to use that instead.