datastore: refactor transaction & datastore.

Hello again!

I rearranged a few things, hopefully for the better. I'll leave comments. :)
@rakyll  - found the `recursive` flag, which will dig into `test/*` for test files.