fix(agent): Retry agent heartbeats

Attempt agent heartbeats three times with an exponential heartbeat.

Fix #116
test(functional): Clarify retry code
test(functional): Alter retry timing
Merge pull request #252 from bcwaldon/heartbeat-retry

Retry failed agent heartbeats.