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

it('should return a **different** future after being resolved