#170, added test cases for StoreEventListener on expiration and eviction

Hi Please review this pull request, few things to notice:

1. I moved TimeSource from impl to core module as i needed access to TimeSource for writing expiration tests.
2. There is a bug in testPutIfAbsentOnEviction test, as putIfAbsent call puts key/value in store even thou store capacity is reached.

Thanks

Gaurav