Issue #143 Fixing Ehcache.putIfAbsent to return previous value

Now, I think all these Concurrent CRUD actually miss tests at the `Ehcache` level... Looks like this requires some new task!
I'm not sure I agree with this. If the cache had no installed value for the key, and you had to read it through - *and* it turned out it is as if you installed it because the loaded value is the same as the one you're trying to install in the first place, then in fact your previous value was indeed a null (or else why would you go to the loader?), and the new mapping was successful. If the equality check fails, then we load up the correct value from SOR and return it, in one shot.