Interface normalization.

Although the CacheProvider provides several interesting capabilities, most are not available through the Cache interface. This PR simply declares new interfaces and CacheProvider as implementation of theses.

Note that FlushableCache could be implemented only by implementations that were actually able to flush all entries, instead of CacheProvider.

Well, I depends on what you consider the cleanliest from a OOP point of view (considering NamespacedCache is supposed to be a optional behavior of caches): 
```php
if(method_exists($cache, 'setNamespace')) {
  // do something
}
```
Or:
```php
if($cache instanceof NamespacedCache) {
  // do something
}
```