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!
Here's an example on CHM:
```
    ConcurrentMap<Integer, String> map = new ConcurrentHashMap<Integer, String>();
    String value = "value";
    System.out.println(map.putIfAbsent(1, value)); // outputs null, installed value
    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, 
```