AppRTC: Use WebSockets instead of Channel API.

With this change no messages are stored on GAE. Instead, they are stored on Collider.
GAE still keeps track of which users are connected to a given room.
CR comments. Loopback case now handled.
Delete roomid/clientid on WSS in case registration failed.
Use websocket for send if registration has occurred otherwise just POST.
CR comments.

Moved loopback code to its own file, and only serve it when needed.
Log websocket and websocket server errors.
Merge pull request #216 from tkchin/apprtc_collider

AppRTC: Use WebSockets instead of Channel API.
Specify collider host and port in the url
Merge pull request #227 from jiayliu/param

Specify collider host and port in the url
AppRTC new signaling model.

Updates AppRTC GAE server and web client to use the new signaling model.

Clients are required to register with GAE before sending messages, and will
receive a client id upon registration. The first client C1 sends all its
signaling messages to GAE. GAE will store the messages if the second client C2
has not registered yet, otherwise GAE will forward the messages to Collider,
which will then deliver the message over C2's websocket connection. When C2
registers it will receive all stored messages from C1. C2 sends all its
signaling messages through Collider. Each GAE registration is matched
with a BYE command to GAE on hangup.
Merge remote-tracking branch 'upstream/apprtc-collider' into apprtc-collider

Conflicts:
	samples/web/content/apprtc/apprtc.py
Remove some unnecessary state variables by using Promise.all() instead.
Pre pull request cleanup.
CR comments.

DB model combined into a single Client entity with parent ClientAncestor for strong consistency.
Better out-of-order message handling for JS side.
Make clients in the same room strongly consistent.
Make Collider read POST body directly instead of using urlencoding.
Missing semicolon.
Just use a key for parent instead of creating parent entity.
CR comments.
Merge remote-tracking branch 'upstream/master' into apprtc-collider

Conflicts:
	samples/web/content/apprtc/apprtc.py
	samples/web/content/apprtc/index.html
	samples/web/content/apprtc/js/main.js
	samples/web/content/apprtc/js/signaling.js
Merge pull request #237 from tkchin/apprtc-collider

AppRTC new signaling model