gateone.py:  In ApplicationWebSocket added self.locations as a shortcut to SESSIONS[self.session]['locations']
gateone.py:  Added a new command line option and logic/functions to go along with it:  user_logs_max_age.  It replaces the terminal-specific setting 'session_logs_max_age' which represented how long Gate One would let a log sit on the filesystem before it was removed.  The new logic for this capability (the new CLEANER global, cleanup_user_logs(), and the code that starts the PeriodicCallback) will remove all files that end in 'log' inside of all user's 'logs' directory.  It is recursive so terminal session logs will be moving to a 'terminal' subdirectory soon.
app_terminal.py:  Everywhere:  Changed where terminal objects are stored from SESSIONS[self.ws.session]['locations'][self.ws.location] to SESSIONS[self.ws.session]['locations'][self.ws.location]['terminal'].  This is so that other applications/plugins (that I'm presently working on =) can use the 'locations' dict without having to worry about conflicts with the terminal application.
app_terminal.py:  In TerminalApplication added self.loc_terms as a shortcut to SESSIONS[self.ws.session]['locations'][self.ws.location]['terminal']
app_terminal.py:  Removed the CLEANER and all the logic associated with it that removes session logs after 'session_logs_max_age'.  That option is deprecated now that gateone.py handles cleanup of all user logs.
utils.py:  Added some logging.debug statements to gen_self_signed_openssl() so it will be easier to determine what went wrong should an error be encountered.  Hopefully this will help us solve that particular part of issue #182 (https://github.com/liftoff/GateOne/issues/182).