Merge pull request #643 from BrianBland/next-generation

Adds storage driver interface, tests, and three basic implementations