Remove the size related methods from Cache.

The root Cache interface should have nothing related to size-bound caches, implementations can add this if desired.
Refactor the cache algorithm to use a decorator pattern instead.

This makes it easier to combine different cache types. For example, DiskCache + LruCache, or MemoryCache + LruCache.
MemoryCacheTests class.
Remove LruMemoryCache.
Add testRemoveNullKey() methods.