[common] Refactor Retryable
[common] Add docs for Retryable. Fix broken tests.
Merge pull request #165 from oppegard/retryable_refactor

[common] Refactor Retryable