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.
TODO: now that we're writing PIDs in two places (here and pyfarm-agent), move this into a common function

For reference, I just recently removed a function pyfarm/agent/entrypoints.py that did exactly this.  At the time that function did more than it should have been doing so I removed it.  I'll readd it so we don't have to keep copying this around.