Restart server on demand

This PR helps us get towards fixing #1290, and have an administrative tool at our disposal.

There are two items here:
1. Push all Json messages through a class, rather than constructing manually on the fly.
2. Add a simple api endpoint for restarting the default production server.

Best to review by commit.

Best way to test:
0. Start the server with `python ./manage.py runcherrypyserver port=8008 threads=17`
1. Browse to the update page
2. In the javascript console, enter `server_restart()` (cherrypy server should restart)

and

0. Start the server with `python manage.py runserver 8008`
1. Browse to the update page
2. In the javascript console, enter `server_restart()` (should get a message that it's not possible)