Move/rewrite runner.js as session.js.  Keep session information in localStorage, associated with window, not in hash.  Execute global events against session instead of util (e.g., session.emit('close')).  Rename runner.messageHandler as session.hub.  Move templates into their own file.