Sorry for the huge commit;  Had lots and lots of dependent changes (pkg_resources stuff)!
gateone.js:  `GateOne.Visual.newWorkspaceWorkspace()` has been renamed to `GateOne.Visual.appChooser()` to more accurately reflect what it does.
gateone.js:  `GateOne.Visual.appChooser()` now takes a 'where' argument to specify where the application chooser should be placed.  If not given it will be placed in a new workspace.  If 'where' is `false` then the app chooser element will be returned and not placed anywhere.  It also uses `GateOne.openApplication()` instead of calling an application's `__new__()` function directly.
gateone.js:  `GateOne.Utils.removeElement()` now returns the removed element;
doT.js:  Added support for comments.  They work like this:  `{{// some comment}}`.  I have forked upstream and created a pull request for them to add this functionality.
terminal.js:  `GateOne.Terminal.onResizeEvent()` now resizes *all* visible termnals...  Not just the currently-selected terminal.
gateone_visual_extra.js:  Made a lot of changes to `GateOne.Visual.Pane()`.  Still experimenting though...  Not ready for production use.  Vertical splitting seems to work great though!  Just need a way to resume split terminals.
terminal.js:  `GateOne.Terminal.sendDimensions()` got a major overhaul.  It now keeps track of the prevRows and prevCols values on each individual terminal object inside `GateOne.Terminal.terminals` and also works better when you've got multiple terminals in view.
terminal.js:  `GateOne.Terminal.newTerminal()` now sets the 'data-term' attribute on new terminals to make it easier to find the terminal number.
terminal.js:  Removed `GateOne.Terminal.Input.handleVisibility()` since it was unused.
Themes:  A few minor tweaks here and there.
Playback plugin:  `GateOne.Playback.hideControls()` and `GateOne.Playback.showControls()` now stop and restart the clock interval callback, respectively (no reason for it to keep ticking away in the background when there's nothing to update).
Playback plugin:  `GateOne.Playback.addPlaybackControls()` has been renamed to `GateOne.Playback.addControls()` since the former was from the redundant department of redundancy.
Playback plugin:  Just a touch of code optimization here and there.  Size reduction, mostly.
gateone_utils_extra.js:  Added `GateOne.Utils.Interval()` which is simply a more intelligent way of handling `setInterval()` and `clearInterval()`.
Playback plugin:  The clock updater will now be stopped whenever the user switches to a different tab.  It will automatically resume when the user switches back to Gate One.
core/server.py:  Added `StaticHandler.validate_absolute_path()` and `StaticHandler.initialize()` so that the contents of plugins and applications can be extracted via `pkg_resources` instead of relying on relative paths to their respective Python modules.
core/server.py:  Fixed the bug where obsolete files in the client-side fileCache were not being cleaned up (this required a minor fix to `ApplicationWebSocket.file_request()`).  I seriously doubt anyone but me (who regularly has Gate One serving up unusual assets) would have been impacted :)
core/server.py:  Removed `ApplicationWebSocket.get_js()` since that functionality is no longer needed with all the file synchronization mechanisms that are available.  Nothing in Gate One used it.
core/server.py:  `ApplicationWebSocket.get_theme()` now uses the `pkg_resources` module to find and deliver theme files in all plugins/applications.
core/server.py:  `ApplicationWebSocket.send_plugin_static_files()` now uses the `pkg_resources` module to find and deliver static assets.
core/server.py:  `MainHandler()` now uses `pkg_resources` to find and deliver the index.html template and gateone.js/gateone.min.js.
core/server.py:  `ApplicationWebSocket.send_extra()` now uses 'pkg_resources' to find and deliver those assets (aka whatever was put in 'gateone/static/extra').
app_terminal.py:  Changed the way plugins are initialized in order to take advantage of the changes to `gateone.core.server.StaticHandler`.  Static assets now get served using `pkg_resources` which should pave the way to more easily-installed Terminal plugins.
core/utils.py:  Fixed a bug where static assets (JS and CSS) could end up missing from the returned dict in `entry_point_files()`.