rework CacheWriter writeAll() and deleteAll() to permit partial success

I agree it could be cast to Set<K>. I don't actually think there is anything in the resulting bytecode for these casts actually, it just selects the method call