Extract client interface

- Testing classes that have the client as a collaborator is tricky as
there is not interface to stub / mock leading to fat integration tests.
Merge pull request #6 from raoulmillais/extract-client-interface

Extract client interface