Issue 41 - cache event stuff

My parting gift to Ehcache 3.0 (for now) - cache event implementation (issue #41).

Some things left to be resolved later: 
* `Cache.Entry` delivered with cache events doesn't support create/access times or hit rate. This is documented in https://groups.google.com/forum/#!topic/ehcache-dev/N_UTJKIlCNI
* `Store.compute*` methods that do not complete normally due to an exception may still result in event delivery to listeners. This is to be addressed as part of #165.
* Eviction isn't covered by existing unit tests. TBD possibly after #151 is merged in.
* Exceptions thrown by listeners aren't dealt with; deferring until after #52 is finalized.
This method seems a little weird. I think this new wrap() method that takes (K, OnHeapValueHolder) should return the anonymous implementation of Cache.Entry. The existing wrap() method that takes Map.Entry should call this one pass the entry key and value.