[Feature] Response caching

Provides default response caching functionality. Out of the box, the client configures ArrayCache, so most likely a persistent adapter would be used instead. As an example, a project using this library could provide the following config:

**Still a WIP. Not ready to merge.**

```php
<?php
use Guzzle\Cache\DoctrineCacheAdapter;
use Guzzle\Plugin\Cache\DefaultCacheStorage;
use  Doctrine\Common\Cache\RedisCache;

$client = new OoyalaClient(array(
    'api_key'      => '123',
    'api_secret'   => '456',
    'ooyala.cache' => array(
        'max-age' => 300,
        'stale-if-error' => 3600,
        'plugin' => array(
            'storage' => new DefaultCacheStorage(
                new DoctrineCacheAdapter(new RedisCache($redis))
            ),
        ),
    )
));
```