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