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.
I won't go as far as to say we have to change this, but the pattern here is a little weird. Almost always things support multiple listeners with methods like addListener(), removeListener().