backend storage implementations are coupled with interface

The current API couples the storage backends (mgo) in particular with the package. It would be more awesome of if the backends either registered themselves (the way sql drivers do) or had static constructors in their own packages that returned a Store interface. This would keep the main package lightweight.