ISPN-3530 ISPN-1855 Keep per-cache CH to route requests correctly

https://issues.jboss.org/browse/ISPN-3530
https://issues.jboss.org/browse/ISPN-1855

* It fixes an issue where accessing non-distributed caches can break topology updates.
* Add asymmetric routing test that forces each server to hash only to itself to replicate situations where different distributed caches have different CH.
I see this code duplicated 3 times... can you create a ```getOrCreateIfAbsentBalancer(byte[] cacheName)``` to remove these duplication?