Add `Common\Http\Client\AbstractClient`.

`Common\Http\Client\StreamClient` should extend the new `AbstractClient`.
Remove `maxRedirects` and `timeout` from constructor and set default directly on class.
Add setters for `maxRedirects` and `timeout`.
Move `normalizeHeaders` to `AbstractClient`.
Add `Common\Http\Client\CurlClient`.
Add `ServiceFactory::setHttpClient()` class method.

 * Remove `ServiceFactory::__construct`. HTTP client should be set via
`setHttpClient`.
 * Remove `$httpClientMap` as it's not longer necessary. `setHttpClient` enforces
that the client implements ClientInterface via type hinting.
 * To maintain backwards compatibility, `ServiceFactory::createService` creates a
`Common\Http\Client\StreamClient` instance if no HTTP client has been set.

I'm not crazy about the backwards compatibility hack, but it keeps the library
functioning the way it did before while at the same time adding flexibility.
Add `CurlClient` to `HttpClientsTest`.
Add PUT request support to `Common\Http\Client\CurlClient`.
Add support for other HTTP methods in `CurlClient`.
Merge pull request #90 from popthestack/master

Add cURL HTTP client