fix(cache): Make UnboundedCache implement Cache

The `Cache` implements concrete methods then we should `extends` it, not `implements` it

This fix an analyzer warning
```
Warning: 'FakeCache' doesn't implement 'Cache<String, HttpResponse> clear inherited from Cache<String, HttpResponse>' declared in 'Cache<String, HttpResponse>'.
Try adding an implementation of 'clear' or declaring 'FakeCache' to be 'abstract'.
class FakeCache extends UnboundedCache<String, HttpResponse> {
^^^^^
packages/angular/cache/cache.dart:42:8:
Info: The method 'clear' is declared here in class 'Cache'.
  void clear() => removeAll();
       ^^^^^
base/test/core_dom/http_spec.dart:10:1:
Warning: 'FakeCache' doesn't implement the getter 'length' declared in 'Cache<String, HttpResponse>'.
Try adding an implementation of 'length' or declaring 'FakeCache' to be 'abstract'.
class FakeCache extends UnboundedCache<String, HttpResponse> {
^^^^^
packages/angular/cache/cache.dart:43:11:
Info: The getter 'length' is declared here in class 'Cache'.
  int get length => size;
```

/cc @jbdeboer