Merge #4901
4901: Closes #4553: Migrate WindowFeature to browser-state r=grigoryk a=csadilek
This migrates our `WindowFeature` to `browser-state` and deletes the relevant code from `browser-session`.
Instead of keeping two distinct states for open and close window requests, this uses just one, which simplifies store observers (e.g the feature implementations). This wasn't really useful before anyway, so I decided to simplify here and introduce a type instead.
The `WindowFeature` now also uses our `TabsUseCases` to open and close tabs in response to window requests, instead of interacting with the `SessionManager` directly. This follows the same pattern as our other migrations. The use cases will be the final classes to migrate once everything else is done. For this to work, we need to move `WindowFeature` from `feature-session` to `feature-tabs` because otherwise we'd be introducing a dependency cycle. This is a better fit anyway, as the feature reacts to window request by opening and closing tabs, and a separate feature module seems unnecessary.
Co-authored-by:
Christian Sadilek <christian.sadilek@gmail.com>