Retry failed joins on agent start

Fixes #395. Adds support in the agent for specifying `-retry-join`, `-retry-interval`, and `-retry-max`.
This follows the same basic approach taken by Serf.