The Great JCache Pull request :)

Why is this method not making use of the getAndPutAsync?

Example:


```

    @Override
    public boolean compareAndSet(long expect, long update) {
        return asyncCompareAndSet(expect, update).getSafely();
    }

    @Override
    public InternalCompletableFuture<Boolean> asyncCompareAndSet(long expect, long update) {
        Operation operation = new CompareAndSetOperation(name, expect, update);
        return asyncInvoke(operation);
    }
```

As you can see there is no need for the code duplication. If you write the async methods, the sync methods are super simple.