Add retry logic for joining.

The joiner might started before the cluster gets started. The joiner will try to
re-join the cluster if it can't connect to the cluster.
Merge pull request #163 from EasonLiao/join_retry

retry join if it fails