Implement davinci.Client interface

@evert this is an alternate conception of the auth abstraction layer that can be extended to satisfy the oauth use case you described