terminal_input.js:  Fixed the bug that was preventing certain global shortcuts from working properly (e.g. Ctrl-Shift-<arrows> to change workspaces).
terminal.js:  `GateOne.Terminal.alignTerminal()` now uses the currently-selected terminal if no terminal number is given.
terminal.js:  `GateOne.Terminal.alignTerminal()` is now attached to the "go:ws_transitionend" event (see below).
terminal.js:  Changed a number of events calls inside `GateOne.Terminal.init()` to be called after the 'go:css_loaded' event instead of 'go:js_loaded' due to the fact that a lot of things won't get calculated properly unless the CSS is done loading.
terminal.js:  Fixed an issue where sometimes terminal restores would be missing newlines on otherwise empty lines.
terminal.js:  Lots of changes all around to functions that call `GateOne.Terminal.alignTerminal()`.  They are no longer necessary with the new logic.
gateone_input.js:  Code cleanup/optimization.
gateone.js:  Added a new function: `GateOne.User.setActiveApp()` which sets just sets the `GateOne.User.activeApplication` attribute to the name passed as the first argument.
gateone.js:  Added a new function: `GateOne.User.workspaceApp()` which gets attached to the 'go:switch_workspace' event inside of `GateOne.User.init()`.  It calls the new setActiveApp() function (to do the obvious).
gateone.js:  Greatly improved `GateOne.Visual.slideToWorkspace()`:  It now uses the transitionend event for precision timing.  It also sets and unsets a new variable that can be used to determine if a workspace transition is in progress: `GateOne.Visual.transitioning`.  It also now fires the "go:ws_transitionend" event when the user has finished selecting a new workspace.
gateone.js:  Made some improvements to the logging/message features of `GateOne.Base.superSandbox()`.
The two new `GateOne.User` functions should allow more accurate tracking of which application is currently active on the page.  This was necessary in order to fix the situation where terminals embedded *outside* the #gateone element would either receive input *or* work with global shortcuts.  We need both to work at the same time.
server.py:  A bit of code cleanup.
core/utils.py:  Changed the docstring of create_signature() to match how it's done inside core/server.py
core/server.py:  Made some minor improvements to the `ApplicationWebSocket.api_auth()` function in regards to certain edge cases and logging.
hello_embedded:  Changed the code that shows how to embed a terminal outside of Gate One so that it no longer sets the style of the #gateone element to 'display: none;'.  When you have 'embedded: true' there's no reason to hide that element and it will mess up the focus/keyboard events.