state: refactor Storage

- State.Storage() no longer returns an error
- state.Storage no longer has a Close method

Resource lifetime is now managed within each
method call. Get is a special case, where the
returned ReadCloser manages the lifetime of
the mgo session (it is closed when the ReadCloser
is closed).
Change state.Storage usage sites
fix comment, add tests
Merge pull request #784 from axw/state-storage-refactor

state: refactor Storage

- State.Storage() no longer returns an error
- state.Storage no longer has a Close method

Resource lifetime is now managed within each method call. Get is a special
case, where the returned ReadCloser manages the lifetime of the mgo session
(it is closed when the ReadCloser is closed).