Beginnings of datastore code.

Still needs a ton of work.  I'm going to merge with the master branch
now.