[EJBCLIENT-120] Hang in AbstractHandleableCloseable.close() when using @Clustered

Extract the logic from cluster context outside EJBClientContext for
uncoupling the operations between EJBClientContext and
ClusterContext. This removes the deadlock when both types
of operations are being invoked through the EJBClientContext.
BZ 6.x https://bugzilla.redhat.com/show_bug.cgi?id=1133980
Hi @dmlloyd 
The PR does not break the old methods (the sync blocks in the EJBClientContext are still there) so the behavior is exactly the same. 
Right now a client code uses EJBClientContext; the internal message handler for cluster topology is using the same class (and same lock).
The change the PR does is a way to exchange information when the cluster topology message are being handled (through the new class with its own lock). This PR adds a new class for handling them internally and a new method in EJBClientContext with no sync block. 

The change with two locks would be:
'public synchronize void doSomething () {
     // do other stuff
     // do cluster stuff
}'
to
'public void doSomething () {
    // do other stuff
    synchronized(clusterContexts) {
        // do cluster stuff
    }
}'

Notice that I cannot sync with 'this' instance because the problem won't be fixed.
I'm closing this PR one.