Pub/Sub architecture

This PR adds a new version of Pitt (in `client_pubsub` and `server_pubsub` directories).

I'm really happy with how it turned out. The only bugs visible are:
1) inconsistent state when multiple instructors want to broadcast
2) browsers don't trigger `mediaConnection.closed` event, so when someone drops out of chat there's no possibility to address that by, for example, removing their video stream from DOM