HUGE PERFORMANCE IMPROVEMENT IN THIS COMMIT!  See the notes regarding terminal.py...
terminal.py:  Implemented a two-pronged line cache (of sorts) that gets used by _spanify_screen() to save a significant amount of CPU whenever the function is called.  This involves two new variables:  Terminal.prev_dump and Terminal.html_cache which store copies of the raw screen and the HTML output, respectively, from the last time _spanify_screen() was called.  So if nothing changed on a particular line between the last call and the current one it will use the cached/prerendered HTML line instead of spending cycles converting the screen.
terminal.py:  Fixed an issue where if you had an image being displayed and you executed a program that uses the alternate screen buffer this could cause the terminal to wind up in a "sort of" hung state until you executed something like ctrl-l.
terminal.py:  Fixed an issue where renditions could be corrupted when returning from an alternate screen buffer (similar to above).
Updated the Licensing link in the README.rst.
gateone.py:  Added a new function to TerminalWebSocket:  get_bell().  It opens the bell sound, converts it into a data::URI and sends it to the client via the 'load_bell' action (see below how this action is handled).
gateone.py:  The logic that adds the bell sound to the index.html template has been removed from the MainHandler.
gateone.js:  Added an X close icon to the "Info and Tools" panel.
gateone.js:  Added an X close icon to the Preferences panel and moved the username/sign out bit below the header (to make room for the X).
gateone.js:  GateOne.prefs.bellSound has been renamed to GateOne.prefs.audibleBell to better reflect what the variable controls.
gateone.js:  Added back GateOne.prefs.bellSound as a place to cache the bell sound so we don't have to download it every time Gate One loads.
gateone.js:  Added a new function to GateOne.User:  loadBell().  It gets called when gateone.py sends the 'load_bell' action to the client (with the bell sound as a data::URI as the payload).  Essentially it just adds an <audio> element to the page containing the bell sound.  The idea is to make the bell work when embedding Gate One into another app without having to have said app include a separate <audio> tag (one less thing to worry about).
gateone.js:  Added some logic to GateOne.Net.onOpen() that checks to see if the bell sound is cached in GateOne.prefs.bellSound and sends a 'load_bell' action to the server if not.
gateone.js:  GateOne.Utils.savePrefs() now takes an argument:  skipNotification.  If true, displayMessage() won't be called to let the user know their prefs have been saved.  Added this since loadBell() calls savePrefs(true) after it sets GateOne.prefs.bellSound; there's really no reason to notify the user of this.
gateone.js:  Added a new function to GateOne.User:  uploadBellDialog().  It opens a dialog where users can customize the bell sound.  The bell will get saved locally when the form is submitted and never gets sent to the Gate One server (which is cool, client-side File API stuff!).  A button has been added to the Preferences panel to call this function.
gateone.js:  Fixed the bug where if you had more than ~40 terminals open they would start to get cut off at the top.  This would get worse the more terminals you had open (it would get real bad around terminal 150!).  Everything should line up perfectly now no matter how many terminals you have open.
index.html:  The <audio> element that contains the bell sound has been removed.
Themes:  Updated to place the username/sign out bits in the new location.
Bookmarks Plugin:  Modified bookmarks.css to make room for the X (close panel).  Essentially I just moved the search form 1.5em to the left of where it was.