Issue 39

There may still be some rough edges here. In particular, it feels like `CacheWriter.write(K, V)` needs to be split into insert and update, and return a value. Also, an attempt was made to whip compute/write functions for bulk CRUD methods into shape, to blaze the trail for fixing #110... not super convinced they are correct now though.
How do we approach recovery from `CacheAccessExceptions` thrown on bulkCompute() then? If the function isn't memoized, then are we assuming the function must be idempotent for that to work? This is probably the case with `removeAll()`, but not so sure about `putAll()`.