Public cache etc.

* Namespace lib/cache/* to use `OC\Cache` instead of `OC_Cache`
* Fix any usage of `OC_Cache_*` in core
* Create an interface OCP\ICache
* Implement the interface in OC\UserCache
* Add getCache to IServerContainer and Server to return a - non-static - OC\UserCache
* Add test for `OC\Cache\UserCache`

Refs #4863 

@DeepDiver1975 @karlitschek @icewind1991