Client exponential backoff

Added exponential backoff for master client.

Based off my testing, I found that the current 1 second sleep was taking 30% of my CPU time.  After switching to exponential backoff, the retry logic was no longer the top consumer (or even noticeable).

I made this change since it was effecting performance.  The current logic for worker doesn't have the same issue in my tests (prob cause the process doesnt get under load?), so rather not touch that code with this patch.
getSleepTimeMs()