gateone.py:  Added a new setting that can go under the "gateone" section:  "auth_timeout".  It controls how long the cookie/authentication object will be considered valid before the user is forced to re-authenticate.  Note that if you're using Google or PAM authentication this will be a completely transparent event since Google will use the cookie that's already set and the browser will re-use the credentials you entered originally.  This new setting merely controls the length of time the encrypted value will be considered valid.  This required many changes to code all over the place (wherever `get_secure_cookie()` was called).
auth.py:  Modified to use the new 'auth_timeout' setting.
gateone.js:  `GateOne.Visual.dialog()` now uses `GateOne.Utils.randomString()` rather than `GateOne.Utils.randomPrime()` for it's unique identifier.
gateone.js:  Fixed a bug where you'd be left with an empty screen if you lost your connection to the Gate One while you only had a New Workspace Workspace open (no applications).  It will now open the New Workspace Workspace whenever the connection is re-established if nothing else is already open.
utils.py:  Added a new function: `total_seconds()` that takes a `datetime.timedelta` instance and returns it's value in seconds.  It basically just emulates the `timedelta.total_seconds()` function that was include in Python 2.7+.