Issue 47

Added getAll(), putAll() and removeAll() implementations with reader and writer support. The code in the cache layer should be versatile enough so that the store layer has a lot of flexibility on how it wants to load the keys.
That's a good point: what to do with null values in this case? My opinion is that they make no sense so maybe there should be a null check that ignores the returned entries with a null value.

I can submit such change if we agree this is the thing to do.