For review comments only - issue #72, Exipration stuff

Plenty of questionable things in here: 
- The interface of `org.ehcache.expiry.Expiry`
- The implementation of expiration in OnHeapStore
  - in particular the while(true) loops. I think it could be reasonable to return without looping even though it is known a newer/more-accurate answer might be observable
- The way `Expiry` gets into a Cache and then onto the Store, as explicit methods on the config objects
- The way the `TimeSource` gets into OnHeapStore (no idea if I used the service config concept correctly)
  - see `org.ehcache.internal.store.OnHeapStore.Provider`
- no updated javadocs (in particular updating `Store` methods to talk about expiration
- no new tests
This is subjective and mostly about stylistic: but you could make that `BiFunction` below side-effect free by building the new `ValueHolder` prior to invoking it. Have the method "close over" it (as well as the `now`, which I initially didn't like, but since it's used in a `Map.compute`, it actually lowers the contention on the key, while widening the timing "error", but the former is probably desirable over the latter... so I think it's actually desirable this way). 

Anyways, having the method side-effect free is probably more functional... or so they say.