Made the client instance overridable.

I have made the client overridable so users can inject their own Guzzle instance. They also can access the current client instance with the getClient() method. I saw in the code that you've made some sort of base for the functionality and I build this PR on top of it.

The main reason this functionality is important for me is to have some sort of mocking functionality in the (coming soon) SymfonyBundle tests.