move cache fetch into #fetch_from_cache_for to make it easier to override.
introduce Cell::Caching::Notifications, fixes #64.