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
Not only am I not a fan of the restriction, but also why would 1,000,000 TimeUnit.NANOSECONDS not be acceptable and would have to be represented in TimeUnit.MILLISECONDS ?
Long story short, why do we limit this here. Why wouldn't it the `Store` 's concern to decide how it deals with too small values?