GUI update process

Solves #232.

Old server:
![oldserver](https://cloud.githubusercontent.com/assets/191955/2610356/8d8a3e9c-bb85-11e3-9b4c-0125a1534115.png)

Updating:
![updating](https://cloud.githubusercontent.com/assets/191955/2610364/a4f4658a-bb85-11e3-9cf5-63be533072d2.png)

New server (notice it's missing the new version box on the right hand side, due to a bug fixed on this PR):
![newserver](https://cloud.githubusercontent.com/assets/191955/2610369/b89c76cc-bb85-11e3-8a9a-2650683779e9.png)


Limitations right now:
1. Can't be run on Windows.
2. ~~Can't be run when you're using the dev server.~~ Won't fix. They won't run the dev server anyway.
3. ~~Server can't be backgrounded; server output must be in the foreground.~~ Fixed.


In-progress while I fix the limitations 2 & 3 above. But putting it up here anyway so people can start reviewing.