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

Also,

```dart
  expect(fromCache).not.toBe(completer.future);
```