ENG-8258: API for linking and sharing states
It works by defining a substate of SharedState and then calling
self._link_to(target_token) from some event handler. from that point on,
whenever that user's state is loaded, the StateManager will patch in the linked
shared states. whenever a linked state is modified, we explicitly load all of
the other linked tokens, patch in the modified states, and send a delta to
those clients
You can call ._unlink to remove the link association, which causes the substate
to be subsequently loaded from the client_token's tree as a private state
It is intended to work transparently with computed vars, background events, and
frontend rendering.