Multi machine rehaul

This addresses the changes required for mozilla/captain#25. 

- Shove now launches three threads:
  - The shove thread, which listens for orders from Captain, executes them, and sends back the results.
  - The heartbeat thread, which periodically sends a message to Captain with some data about this particular shove instance, such as hostname and supported projects.
  - The main thread, which listens for signals and shuts down the other threads when SIGINT is received.
- Because we're using threads for each listener now, we don't need to use the async API for pika anymore, so it's switched to the blocking API now (which is simpler anyway).
- Updated existing tests to work with the new code. I think we should eventually add tests for the threads, the adapter, and cmd.py, but for now I've left them out to get this reviewed and running. I'm much more interested in manually testing this at this point in development anyway.