core/server.py:  Modified `install_license()` to install license files into the settings_dir instead of the GATEONE_DIR.  This should allow licenses to persist after re-installation of Gate One.
core/server.py:  Removed `set_license()` and replaced it with `validate_licenses()` which both validates the licenses in Gate One's settings as well as sets the `__license_info__` global.
core/server.py:  Added a little conditional to `ApplicationWebSocket.on_message()` to differentiate between exceptions that occur trying to execute WebSocket actions and unknown WebSocket actions.
core/server.py:  Removed the unused references to `self.user` inside `ApplicationWebSocket`.  They're leftovers from a time before I realized that `tornado.web.WebSocketHandler` used `self._current_user` in exactly the same way as all the regular HTTP handlers.
gateone.js:  Removed the check inside of `GateOne.Visual.switchWorkspace()` that has it return (and do nothing) if we're switching to the workspace that is already active.  The reason for this is because one application can replace another inside of a workspace in an instant and when that happens we need the 'go:switch_workspace' event to fire so applications can know that they have become active.
gateone.js:  Fixed a bug in `GateOne.Visual.slideToWorkspace()` that had the 'go:ws_transitionend' event being fired multiple times unnecessarily under certain circumstances.
Playback Plugin:  Fixed a bug in `GateOne.Playback.savePrefsCallback()` that was preventing the 'playbackFrames' array from being reset properly when a user saved their preferences (this would result in certain prefs not being saved at all).
Playback Plugin:  Gave it an all-around optimization (in the form of reduced code size).
terminal.js:  Removed the logic that removes the terminal info element when the mouse is moved because it causes it to be removed too quickly now that I've changed the way it's layed out via CSS.
terminal.js:  `GateOne.Terminal.alignTerminal()` now gets called whenever a new terminal is created.  This should alleviate the out-of-alignment terminal problem that can occur immediately after sole new terminals are created and when resuming a session.