TERMINAL SHARING IS NOW COMPLETE/WORKING.  There might be a few rough edges but all features have been implemented:  Sharing with read-only or read/write access, broadcasting terminals to anonymous users, URL generation, notifications of shared terminals, keeping track of shared terminals, logging when shared terminals are used, etc etc.  Please try it out and open bugs in the Github issue tracker if you find anything.
terminal.js:  Lots of changes all over the place to finish up terminal sharing support.
terminal.js:  Setting a password on a shared terminal now works.
terminal.js:  Modified `GateOne.Terminal.reconnectTerminalAction()` to accept a "message" object instead of just a "term" number.  The message now contains the "term" as well as a "share_id" if the terminal is shared or owned by another user.  It will assign that share ID to `GateOne.Terminal.terminals[term]['shareID']`.
app_terminal.py:  Loads of changes to terminal sharing.
app_terminal.py:  Modified the calls to 'terminal:term_exists' to use the new message format.
terminal.js:  `GateOne.Terminal.reconnectTerminalAction()` now triggers the "terminal:reconnect_terminal" event, passing it the message it received from the server.  It does this right before the 'share_id' is assigned to the `GateOne.Terminal.terminals[term]` object so that applications embedding Gate One can create their new terminal/modify the object before the 'share_id' is assigned.
terminal.js:  The `GateOne.Terminal.reconnectTerminalAction()` function will no longer create a new terminal automatically if `GateOne.prefs.embedded == true`.
terminal.js:  Fixed a bug where you could get an exception when sharing then immediately un-sharing a terminal (closeFunc on undefined).
gateone.js:  The fallback for when various `console.*()` functions are used has been changed from `console.warn()` to `console.log()`.
gateone.js:  You can now pass multiple arguments to the shortcut functions `GateOne.Logging.logInfo()`, `GateOne.Logging.logDebug()`, `GateOne.Logging.logError()`, `GateOne.Logging.logWarning()`, and `GateOne.Logging.logFatal()` and they will behave just like their `window.console.log()` equivalents (so the objects you pass as additional arguments will be displayed/browsed directly in the console instead of being converted to strings).