Refactor AppRTC into various modules.

main.js has been split into apprtc.js, logging.js, perf.js, pubsub.js, signaling.js, stats.js and util.js. Each new module defines itself in the apprtc namespace.
There shouldn't be any behavioral changes app-wise. However, structurally:
- A publish/subscribe pattern is now used where each module advertises topics it publishes and other modules may subscribe to said topics.
- Promises are now used to simplify some logic surrounding async requests.
- Scripts are now marked with a defer attribute.
- main.js has been removed since the application module can be started directly in the HTML file via DOMContentLoaded.