Part 1 of issue #34, not integrated with the coordinator yet

This is part one of the heartbeat (the hard part) it add a scheduler that will eventually run within the coordinator, which will use this to register etc path/ttls.  It will make sure the paths have their ttls updated before they expire. 
Im sorry these tests take 10 seconds to run, but I didn't feel like refactoring to support "accelerating" time to the millisecond scale.