[lib] introduce Tunnelbroker Context
Summary:
Adding some boilerplate.
Create a separate diff to potentially discuss using a Tunnelbroker connection via context.
Why this solution?
- It allows messages to be sent from any component in the tree.
- It enables the addition of listeners from any component in the tree.
- It facilitates dispatching actions as reactions to received messages without requiring any hacks.
- It avoids bloating redux with messages (as in the case with the keyserver socket).
Depends on D9596
Test Plan: N/A
Reviewers: michal, bartek, tomek
Reviewed By: tomek
Subscribers: ashoat, wyilio
Differential Revision: https://phab.comm.dev/D9606