Added the support code for checking UQ user cookies on uqcloud.net.
Added a framework for sending messages to/from the server using uqcloud's authentication.
LoginManager stores the server URL as an attribute; error handling in post()
Remove existing auth system from server, other cleanup.

* Remove all functions from mpt_cgi.py about logins/accounts/passwords.
* Adding the forced redirection back into uqauth.py
* Allow for both GET and POST requests from the client (not that it really matters)
Add a decorator and exception types to manage actions in the cgi script.

The @action decorator manages different types of actions, extracting arguments out of forms, and checking admin privileges.
Fixing the main() function of the server, other fixes.

"Other fixes" include:
* Requests should only attempt to log in if required by the server's response.
* A bug in checking required arguments
Cleanup of exceptions and communication of errors across network.

Added a "mypytutor_error>>>" header to prefix bad requests, which cause a RequestError in the client.
Merge branch 'master' into sso

# By sapi (22) and others
# Via Peter Robinson (2) and others
* master: (43 commits)
  Removed unused code and obfuscation attempts.
  Localised configuration file.
  Configuration is now only saved on exit.
  Completely rewrote the config system.
  Added static analysis output
  Another refactor of Output, this one more sensible.
  Added Label for short description of tutorial
  Widgets are now created and packed consistently.
  Refactor of Output to be self-contained
  Added description of .tut format
  Header length now correctly only uses first line
  Added message for INDETERMINATE status
  Tests are now run on tutorial change
  Added note about output appearing
  Fixed references to is_for (has_for)
  Cleaned up analysis to use new print/input idea
  Added list2.tut in new format.
  Now adds all errors
  Removed list2.tut
  Globals are now always restored
  ...
Refactored tutorlib/Output.py

This was just a move - the file was already cleaned up in a much earlier
commit.
Merge remote-tracking branch 'origin/sso' into refactor
Refactored tutorlib/TutorialInterface.py

This is a very large refactor.  Some things (eg some support files, like
create_problem.py) are likely broken.  They will remain that way until
their turn for refactoring comes (it's not worth applying a band-aid atm).

code/tutorlib/interface/web_api.py is largely non-functional, pending
discussion about how it should be implemented.

Existing testing functionality has been verified.