We can have 2 types of threads open at the same time. One from
the thread view, and another from RHS.
We add another variable to distinguish between the 2 states.
In future, if we have the ability for more than 2 threads, then
we would need to track by threadID.
https://mattermost.atlassian.net/browse/MM-56071
```release-note
NONE
```
We also track the channelID of the thread opened.
Additionally on every connection create or re-connect
with an existing queue, we reset the active state to empty
to avoid any edge-cases.
https://mattermost.atlassian.net/browse/MM-56071
```release-note
NONE
```
We create a new websocket action called "presence" which
can contain the active_channel and the active_team for a given
client connection.
On the client side, for every channel or team switch, we send
out this message.
https://mattermost.atlassian.net/browse/MM-56060
```release-note
NONE
```
It was a good decision in hindsight to keep the public module as 0.x
because this would have been a breaking change again.
https://mattermost.atlassian.net/browse/MM-53032
```release-note
Changed the Go module path from github.com/mattermost/mattermost-server/server/v8 to github.com/mattermost/mattermost/server/v8.
For the public facing module, it's path is also changed from github.com/mattermost/mattermost-server/server/public to github.com/mattermost/mattermost/server/public
```