Proposal for SharedData

Add overloads for SharedData with Callbacks.
In Java Maps uses Object instead of generic type K for .remove() and .get. AsyncMap updated to maintain this consistency.
AsyncMap made to be ConcurrentMap. Enables use in SharedData easily.

Add relevant tests for clustered and non-clustered modes.