* Engine: Expose WebsocketRoutineManager
Without exposing the manager users don't know when it's ready to use.
* wsManager: Remove duplicate shutdown chan make
The shutdown channel was already in setup.
Consumers could reasonably expect it to not be replaced in between the
two, and it's not really part of Start to assign it.
* wsManager: Fix IsRunning true before flushed
Consumers must be able to tell when it's safe to start new
subscriptions. Before this fix any new subscriptions would get unsubbed
as part of the flush during `websocketRoutine`.
* WSM: Fix Stop/Start/Stop failing
We previously removed the shutdown channel from Start to avoid duplicate
allocation.
However that will result in a closed channel after the first Stop
So it's better to remove it from the setup.
It's private anyway.
* WSM: Export WebsocketRoutineManager type