termio.py:  Fixed a Python3-specific bug with get_or_update_metadata() where it could throw a TypeError in certain situations.
termio.py:  Added an extra check to Multiplex._reenable_output() so it won't result in a not-really-a-problem IOError exception from winding up in the logs if self.fd is already being watched by Tornado.
termio.py:  Overhauled the rate limiter logic (yet again).  The result is fantastic though:  It will no longer interfere with supported FileTypes being captured.  It will also operate in a (mostly) smooth mannter...  Merely slowing down other users a bit rather than the former logic which caused stop/go responsiveness.  Furthermore, when the rate limiter is engaged and you press Ctrl-C to kill the noisy process it will intelligently respond to this situation by clearing the file descriptor's buffer and subsequently disengaging the rate limiter.
terminal.py:  A bit of code cleanup.  There were still some leftovers from before the FileType logic.
terminal.py:  Tweaked the PDF regex a bit to make it match a *lot* faster when capturing.
terminal.py:  Users will now be notified of the progress of their FileType captures.  Notifications will only be kicked off if it takes longer than 1.5 seconds to capture a file.  This should ensure that small things like images "just work" without any unnecessary notifications.  The notification delay can be controlled via Terminal.message_interval (it's a timedelta).
terminal.py:  Added a couple convenience functions for calling specific callbacks:  Terminal.send_message(), Terminal.send_update(), and Terminal.send_cursor_update().
terminal.py:  Added a new function that can be used to abort FileType captures:  Terminal.abort_capture().  It sets `self.cancel_capture = True` and sends a message to the user indicating that the capture has been aborted.
terminal.py:  Terminal.write() has had its logic modified to be able to gracefully recover when a FileType capture is aborted (see above).  It will do its best to separate the captured data from the trailing prompt characters; discarding the captured stuff and writing out the leftovers.
terminal.py:  Fixed a bug where under certain (rare) circumstances you could get a ValueError while capturing a FileType resulting in the terminal being terminated.
gateone.py:  Added some logic to detect when a user presses Ctrl-C during a FileType capture operation:  It will call Terminal.abort_capture(), restoring the terminal back to its usable state.  Before this change terminals could get stuck in capture mode forever.
SSH Plugin:  Fixed a bug in terminate_sub_channel() where you could get a RuntimeError if the OPEN_SUBCHANNELS dict changed while it was being iterated.  I could only reproduce this in Python3 but it doesn't *seem* like it would be Python3-specific.
Logging Plugin:  Fixed a bug where viewing playbacks of logs wasn't working due to the recent changes in terminal.Terminal().
Logging Plugin:  retrieve_log_frames() now skips the first frame of a given log if it just contains metadata.
SSH Plugin:  Modified the logic surrounding execute_command() that detects the READY_STRING to be more reliable with systems that use ancient/stranger shells and prompts.  Also updated the title-setting portion of that code to use a less direct echo command instead of trying to send raw characters (also to work around ancient shells).
CSS Themes:  Just a few minor tweaks here and there.
Text Themes:  Same as above:  Just some minor tweaks.
gateone.js:  Fixed the reset terminal button.  It was sending the wrong WebSocket message.
gateone.js:  Fixed the bug where sometimes opening new terminals could result with them being cut off at the top slightly (and the cursor not being able to move all the way to the bottom of the view).
terminal.py:  Modified the regex in JPEGFile.re_capture to be both more reliable and efficient.
INSTALL.txt:  Fixed the position of --prefix.
Rebuilt the documentation to reflect some recent changes to the Python code.
Updated a few things in the documentation and rebuilt it.
gateone.js:  Tweaked the timeout on the logic that moves terminals up to hide the scrollback buffer to work more reliably.
CSS Themes:  Tweaked the widget max-width and max-height to allow for larger widgets.
gateone.js:  Tweaked the terminal movement logic again just a bit.  Also removed the very same logic from the Playback plugin since it is redundant and can screw up from time to time.
SSH Plugin:  Got rid of the transient exception (EOFError) that would occur when pressing Ctrl-D to quit ssh_connect.py.
Logging Plugin:  Fixed a bug where viewing playbacks of logs with images could result in an UnboundLocalError exception.
Logging Plugin: Changed the wording of the buttons in the Log Viewer a bit to make them take up less space.
Convenience Plugin:  Tweaked the permissions regex to be more accurate in detecting the output of ls -l
Merge remote-tracking branch 'upstream/master'