terminal.js:  Added `GateOne.Terminal._trimmedScreen(screen)` which returns *screen* (array of terminal lines) with all trailing blank/empty lines removed.  It is meant to be used by a forthcoming plugin :)
gateone.js:  Fixed a bug in `GateOne.Net.onOpen()` where it was incorrectly using document.URL instead of GateOne.prefs.url.
gateone.js:  Fixed a bug that was preventing drag & drop from working properly when in grid view (so you can reposition workspaces/terminals).  It still looks a bit ugly but I'm working on that.
core/server.py:  Moved the logic that sets `self.base_url` upwards a bit inside of `ApplicationWebSocket.authenticate()` to ensure that it gets set when using API authentication.
core/server.py:  Added a new blacklist feature so that you can mark certain IP address ranges as denied in a .conf inside of your conf.d/ directory.
Docs:  Rebuilt them.  They should also include information on the new blacklist setting (in the server.py docstring).  More general user docs are forthcoming.
core/server.py:  Added a new CLI command:  broadcast.  So you can now run 'gateone broadcast "Some message"' on the command line and it will broadcast that message to all connected users.
terminal/policy.py:  Removed swap_terminals() from the big policy dict since it doesn't really need ACLs.
terminal/app_terminal.py:  Fixed a bug where screen refreshes were not working after calling `TerminalApplication.swap_terminals()`.
terminal/app_terminal.py:  `TerminalApplication.refresh_screen()` now passses the underlying program's raw output 'stream' to the "terminal:refresh_screen" triggered event as a keyword argument (stream=stream).  This should provide plugins an easy-to-use mechanism to capture the output of terminal programs.
termio.py:  `Multiplex._call_callback()` now takes *args and **kwargs that will be passed to the called callback function.
termio.py:  `Multiplex.term_write()` now passes the 'stream=stream' keyword argument to any registered CALLBACK_UPDATE callbacks.
terminal.py:  Changed RE_CSI_ESC_SEQ to use a non-greedy * in that regular expression.  Probably won't make a difference in anything but it seems "more correct" now.