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
Yeah I did without thinking too much about it, and obviously I've let 107 infect me. 

To be sure, I think you're making two points: 
(1) why disallow specified a duration that is effectively equal or greater than 1 ms, even if it expressed in a smaller time unit
(2) Why limit the durations at all, let every Store decide if a duration is too small for it

They're both reasonable. I have hesitation with (2) though. In reality we don't know of a Store that could provide less than millisecond precision (I don't at least). It also seems complicated to decide how to log when a Duration too small is observed (since it happens for most every operation). 

We can always remove the limitation later? 

I don't feel too strongly about this to be honest. I'm definitely lazy in not wanting to deal with in multiple Store impls though