Pluggable storage framework.

Allows usage of different storage backends such as
RemoteStorage, LocalStorage, Filesystem, etc.

GH-8