Improve supervisord starting and stopping.

On boot we now wait until the processes are actually listening (eg,
waiting for elasticsearch to become available and responding).

Supervisor should now also shutdown cleanly in most cases so we don't
end up with extra processes running.