PSR-6: Cache

Pull request for a Caching PSR.  This summary will be updated with the current status periodically.

## Status
The current text can be found here: 
https://github.com/Crell/fig-standards/blob/Cache/proposed/cache.md
https://github.com/Crell/fig-standards/blob/Cache/proposed/cache-meta.md

Please discuss any proposed changes on the mailing list before filing a pull request against this branch.

## To participate
* Please *do not* discuss details of this PR as a PR!  I know it's weird, but that's the way FIG works these days. :-)
* To discuss a specific section, comment on the FIG mailing list in the thread specifically for that section.
* To request a specific change based on discussion on the mailing list, open a pull request against the Crell/Cache branch from your own fork.  Please do not open PRs that have not already been discussed at least briefly on the list.


Why the ``$key`` element must be a string? this will create so much restriction on how we can flush a cache item. If the ``key`` can be a array, then this can be used by storage engine like ``redis`` or ``mongodb``. If the backend storage cannot handle the array, it can serialize it with its own way.

so on the dev's user point of view, we only have the key and not the final key used by the backend engine.

```php

$key =  ['post_id' => 3, 'image_id' => 4];
$storage->save($item, $storage->get($key)->set('myValue'));

$key =  ['post_id' => 3, 'image_id' => 4];
$storage->save($item, $storage->get($key)->set('myOtherValue'));

$storage->remove(['post_id' => 3]); // will remove the 2 items from the database.
```

The usage of a ``Key(string) => Value`` is a legacy representation of memcache/apc system. There are now other system with more advanced options.