Move guzzle to make use of version 4 or 5

* Remove some of the testing of mocking Guzzle and use testing as documented http://guzzle.readthedocs.org/en/latest/testing.html

A questions : 

Why do you need a caching? Doesn't the guzzle http cache works?

May be we need to make use of the asynchronus requests.

I am looking at two libraries http://guzzle.readthedocs.org/en/latest/quickstart.html#using-responses and https://github.com/amphp/artax

That brings me to another portion, may be a bridge is better.

So the users can switch between various implementations. 

I would like to work when I get sometime on it and send a PR .