Add SoChain client implementation. Move all retry code to use Retryable
interface.