* support-room-pin:
Add basic support for pin locked rooms to the web application.
Add support for PIN locking rooms to the server.
Support handling room updates in web client.
Support receiving and broadcasting room update events.
Use room document from Welcome rather than synthesizing a response.
Add Room document and send it back in response to room joins.
Send Hello with Iid from Javascript client, and use the data from the Welcome.
Add server support for responding with Welcome to a Hello.
Major refactoring of server side code to allow isolated unit tests.
Refactor web app room logic into separate service.
In addition to adding unit tests for the "Hello" message,
the following notable improvements are included:
* Separate websocket callbacks from the hub via a handler API
and adaptor.
* Move all application specific state to the session.
* Session no longer refers to the hub.
* Remove redundant MessageRequest struct.
* Hub is no longer responsible for buffer pool or
buddy image management.
* Consolidated connection table locking in the hub.
* Remove redundant session table from the hub.
* Split room join and leave into separate handlers.
This also removes the RoomConnectionUpdate struct.
* Entirely remove room management from the hub.
This also provides room operations with a separate mutex.
* Split stats into a separate service.
* Simplify the session token handler.
* Buddy image HTTP handler no longer takes the entire hub.
* Centralize JSON encoding and decoding. This removes JSON
encoding from the room worker queue.
* Improve unicast message statistics.
* Numerous other renamings and cleanup items.
Contains the following major changes:
* Export connector, api, and webrtc mediastream objects as angular services.
* Export url formatter as a separate angular service.
* Move `authorizing` flag to a function on the root scope.
* Use directive to set the page title.
* Move buddy list visibility toggling into the buddy list directive.
* Room information is no longer exposed on the root scope.
* Use room.joined and room.left events instead of room.
* Treat rooms as an object identified by name, rather than a string id.
* Remove the following unused or semantically ambiguous events from the
connector: opened, helloed, closed
* Centralize all room state in an angular service.
* Move call to hello from connector to api.
* renegotiation:
Disable enableRenegotiationSupport per default to make the stuff mergeable.
Add pc registry to usermedia to trigger media updates to all pcs where the usermedia stream is used.
Implemented negotiation workaround for Firefox.
Implemented offer/answer creation on renegotiationneeded event.
Implement workaround for FF not supporting onnegotiationneeded.
Changed offer generation to generate offer when negotiation is required and signaling state is stable.