Now using WebSockets instead of AJAX long polling.
Ability to run multiple workers.
General code rewrites and cleanups.