This is one piece of browser-session that we want to keep and moving it out allows more components to
not depend on browser-session anymore.
Multiple things are in this patch:
* Storage related code moved from browser-session to browser-session-storage
* BrowserStateSerializer gets split into BrowserStateWriter and BrowserStateReader
* SessionManager.Snapshot has been removed and we now save and restore independened from SessionManager.
We already saved BrowserState. Now we restore into a generic `BrowsingSession`.
* feature-tab-collections no longer depends on browser-session.
* All restore code now goes through TabsUseCases instead of SessionManager directly.