Create AbstractFactory for Cache

We already have `Zend\Cache\Service\StorageCacheFactory`. However, that is limited to a single cache object based on a single configuration value.

This PR creates `Zend\Cache\Service\StorageCacheAbstractFactory`, which allows defining configuration for multiple named cache objects:

```php
'caches' => array(
    'Memory' => array(
        'adapter' => 'Memory',
        'plugins' => array('Serializer', 'ClearExpiredByFactor'),
    ),
    'Apc' => array(
        'adapter' => 'apc',
        'plugins' => array(
            'exception_handler' => array('throw_exceptions' => false),
        ),
    ),
),
````

Cache services are then requested using the prefix 'Cache\\' and the appropriate configuration key: `Cache\Memory`, 'Cache\Apc`. (Using a prefix prevents the possibility of naming collisions with other abstract factories.)

This abstract factory:

- does not conflict with the current factory, as it uses a different configuration key (`cache` vs `caches`)
- is opt-in only (you have to tell your application to use the abstract factory; it is not automatically registered by the MVC)
- follows the same paradigm as the `LoggerAbstractServiceFactory`