switched to using requestAnimationFrame() provided by Three.js library.
added a build step to bundle client-side code (browserify)
moved shared code into gamecore.common.js
only 1 type of data is handled by client_onnetmessage().. a ping reply.
added some event emitter/listeners to test with.
event emitter/listeners work (without processing client input)
controller code moved into gamecore.client.js
tidying up in main.js (its working like a plugin)
gamecore has default rendering context (opts.el can override)
modular gamecore, main.js is a plugin that adds Three.js (3D rendering context is passed to gamecore as an option)