Implement primitive datastore operations

Post, put, get, and erase.
Not yet transactional, need to clarify something with @evansb first
Speaking of aliasing, do NOT do any type aliasing in the header file, you will contaminate the namespace.