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

Should it be `Map<String, Cache>` ?