CacheProxy refactored, cleaned up

* CacheProxy refactored into three classes. 
* CacheProxy related checkstyle issues fixed. 
* Code duplicates removed.
* LoadAll async behavior is fixed.
* ICache doc improved
* ICache API addition, two async methods
I'm not familiar with the threading model of this proxy, but again a potential issue with the completionRegistrationId. 

Perhaps it is better to make of of an AtomicReference where the completionRegistrationId is stored. Then at least you can use cas and deal with the situation that there are conflicting threads.