caching/cache_interface library

Generic synchronous cache interface + a write-through async adapter — roadmap #523.

Classes

Cache<K, V>
The common contract shared by the in-memory caches (LruCache, TtlCache, SizeLimitCache): look up a key, store a value, clear everything.
WriteThroughCache<K, V extends Object>
Wraps a synchronous Cache with an async loader, turning a cache miss into a single load whose result is stored (the read-through / write-through pattern apps re-implement around every remote fetch).