Abstraction on HTTP clients and add Requests client support

My project cannot have strong dependency with cUrl and because of that I cannot use Guzzle.
I added an abstraction level for HTTP clients and also added Requests project support (http://requests.ryanmccue.info/) which uses cUrl or fsockopen according to what available.
Requests can also be used with Composer:  ``"rmccue/requests": ">=1.0"``