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!
Alright, this isn't side-effect free, but correct. Basically now the equivalent of:
```
    ConcurrentMap<Integer, String> map = new ConcurrentHashMap<Integer, String>();
    System.out.println(map.putIfAbsent(1, value)); // outputs null, installed value
    System.out.println(map.putIfAbsent(1, value)); // outputs "bar"
    final String newValue = new String(value);
    System.out.println(map.putIfAbsent(1, newValue) == value); // true, newValue failed installing
    System.out.println(map.putIfAbsent(1, newValue) == newValue); // false,
```