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.
I suppose that's true, but then wouldn't the whole recovery approach fall apart if there's no `CacheLoader` configured here, i.e. there's no way to fault in the correct value? To that end, I think the "repair" logic in replace(K, V, V) is also not quite right?