Cache.remove(K) should always invoke the CacheWriter (even if no entry
exists in the cache)

In the words of christall:
"absence of a cache entry should not be used to veto a write"
Merge pull request #166 from timeck/removeAlwaysCallsWriter

Cache.remove(K) should always invoke the CacheWriter (even if no entry exists in the cache)
#52 : wire resilience strategy in to cache methods
#52 add robust resilience strategy abstract super, and logging sub impl
#52 : some stability tweaks to the iterator logic
#52 create a RecoveryCache interface for the robust resilience strategy
#52 : add getAllFailed variant for when bulk cache load suceeds
#52 : add ResilienceStrategy javadoc
#52 : don't call recovered if inconsistent completes normally