Supervisor

This is the first step towards agent auto-updates. The supervisor
regularly checks if the agent is still running and, if not, restarts it.

If it finds an update in an update drop directory specified on the
command line, it will apply it before starting the agent.

Currently, applying an update just means unpacking a zip file to a
specified location.
General note on the while loop.  For now let's keep the subprocess calls like you have here but I think we want to more do what `pyfarm-agent` does in the end.  All this will probably mean is pulling some of the code out of `status()` in the `pyfarm-agent` script and putting it into a common function that takes some arguments.