replace plain oauth library with faraday, introduce DeskService
flesh out DeskService and DeskGateway
add support for automatic wait/retry on hitting rate limit