Heartbeats

This addresses:
* https://github.com/ethanrowe/auto-consul/issues/1
* https://github.com/ethanrowe/auto-consul/issues/2
* https://github.com/ethanrowe/auto-consul/issues/3

The unit tests are a tad coupled to the implementation.  This stuff would be better done with an integration test, which is something I'm happy to work out a little later; we're still in an experimental phase, and I'm okay with using TDD at the unit level to make sure things are pieces together right, using manual runs to verify the full end-to-end stuff.