Refactor Storage API

Addresses #21 
This _will_ break backwards compatibility and should only be merged as part of a 2.0 release.
Tagging @bklang, @JustinAiken, and @polysics for review