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 like the idea of handling synchronous firing mode the same, regardless of ordered vs unordered delivery, i.e. blocking the calling thread via futures regardless of the executor chosen... just my preference.