gateone.py:  Added the ability to authenticate purely via the WebSocket *without* requiring that API authentication be enabled.  That is, if the client has the necessary (encrypted) authentication data they can use it to gain access without having to make an AJAX call to the /auth URL.
gateone.py:  Modified all RequestHandlers to set the 'Server' header to 'GateOne'.  I chose not to list the version information because I consider it unnecessary information disclosure (why let an attacker easily enumerate the versions of things?).
gateone.py:  The `BaseHandler()` class which most RequestHandler classes (e.g. MainHandler) inherit from now has an `options()` method that complies with the W3C spec.  This is to make it so that default HAProxy monitoring works without having to write something special for Gate One.  I also added some JSON-encoded metadata to the BODY of the response since it could be useful in the future.  This should address the HAProxy issue reported in #293 (https://github.com/liftoff/GateOne/issues/293).
gateone.py:  The `BaseHandler()` now uses the `set_default_headers()` function (feature of Tornado) to set the 'Server' and 'X-UA-Compatible' headers.  This should ensure they're set properly for all subclasses.
gateone.py:  The `HTTPSRedirectHandler()` is now a subclass of `BaseHandler()` so it automatically get the `options()` method (keep code duplication down).
gateone.py:  The `ErrorHandler()` now sets the 'Server' header.
gateone.py:  Moved the API authentication code that lived inside of `ApplicationWebSocket.authenticate()` into its own function, `ApplicationWebSocket.api_auth()`.  Also optimized it a bit and made it store the entire user object in the user's 'session' file instead of just the 'upn' and 'session' (no reason to be that picky).
gateone.py:  Added a new attribute to ApplicationWebSocket:  self.base_url.  It holds the URL that was used to access the Gate One server.  *Very* useful in embedded situations where you want to serve a file from the Gate One server instead of the server hosting the app.
gateone.js:  Fixed a bug that was preventing the user info/logout link from showing up properly.
gateone.js:  Changed `GateOne.Utils.pingTimeout` to `GateOne.Net.pingTimeout` everywhere it was used (since it makes more sense).
gateone.js:  `GateOne.Net.connectionError()` now clears GateOne.Net.pingTimeout in addition to GateOne.Net.keepalivePing.
gateone.js:  Made a few minor tweaks to `GateOne.Logging.init()`.
Themes:  Added a bit of 'margin-right' to '.✈user_info' to make it line up better.
app_terminal.py:  Fixed a bug where fonts would not be downloaded properly in embedded situations.
app_terminal.py:  Fixed a bug where terminal titles were not being sent when a user connected to a terminal the first time (after gateone.py restarts).
terminal.js:  Increased the pastearea.onmousemove timeout (where it shows itself after hiding itself) in order to reduce incidents of "lost clicks" (where you click on a terminal but it doesn't get set active).  500ms seems to work pretty well in my testing.
terminal.js:  Fonts and color schemes are now enumerated immediately after all JS is done loading.  This is to populate the GateOne.Terminal.fontsList and GateOne.Terminal.colorsList, respectively (for use in embedded situations).
termio.py:  Added an additional 'sleep .1' to the command that gets called by 'spawn()'.  This is to ensure there's enough time to attach things like title callbacks (to the terminal emulator) before the underlying program gets run.
termio.py:  Improved a few useful comments here and there.
auth.py:  The 'Server' header is now set inside of `BaseAuthHandler.set_default_headers()` so any requests going to /auth will reply with the correct value ('GateOne').