don't call function twice!
Issue #41: Initial cut of cache event listener notification layer and relevant plumbing, though no actual events are wired in yet.
Issue #41: added event factory methods and store-initiated event support (expiration/eviction).