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, the interface has an empty method. All these guys are authors of the implementation, but there is no implementation in this interface