[WIP] Add OAuth2 support

This PR is quite unfinished, but will hopefully start discussion on whether this is the way to go for adding OAuth2 support. I took some ideas from the [commerceguys plugin](https://github.com/commerceguys/guzzle-oauth2-plugin) for Guzzle 3.

@mtdowling There seems to have been some discussion already on OAuth2 support for Guzzle 4. What is the current state of affairs? 

Some questions that we need to answer:

* Is using a second client (`$oauthClient` in the example below) instance a good idea?
* Should the plugin have some kind of session mechanism for access token storage and retrieval?

Usage sample:

```php
$oauthClient = new Client(['base_url' => 'http://some-web-app.com/oauth/v2/token']);
$grantType = new ClientCredentials(
    $oauthClient,
        [
            'client_id'        => 'id',
            'client_secret' => 'secret',
        ]
);

$oauthSubscriber = new Oauth2($grantType);

$client = new Client(['base_url' => $url]);
$client->getEmitter()->attach($oauthSubscriber);
```

This PR fixes #1.