feat(cache): Move cache out of core, add a CacheRegister

`_caches.values.forEach` ?