ISPN-3807 Cache the result of HQL query parser to be reused

Use a local cache with expiring entries to store the result of the HQL parsing and reuse it
if same query is executed.
ISPN-4685 Lucene Directory Externalizers not used on server deployment
ISPN-4669 Load additional realm roles only for realm principal
ISPN-4186 Re-enable functional test query.distributed.MultiNodeDistributedTest
ISPN-4165 Re-enable functional test query.distributed.MultiNodeDistributedTxTest
ISPN-2727 Re-enable functional test query.distributed.MultiNodeLocalTxTest
ISPN-2727 Re-enable functional test query.distributed.MultiNodeReplicatedTxTest
ISPN-4048 Re-enable functional test query.persistence.SharedCacheLoaderQueryDistributedIndexTest
ISPN-4048 re-classify test query.persistence.SharedCacheLoaderQueryIndexTest
ISPN-4599 Refactor existing tests
ISPN-4599 Rename tests to better match their goal
ISPN-4599 No longer expect all tests to set exclusive_index_use to false
ISPN-4599 Register a backend ErrorHandler in some tests to verify the backend is not throwing exceptions
ISPN-4599 The elected indexing master node should stay stable (pick the coordinator) and allow for transitionaly states
Change ReplicatedCHFactory to only replace leavers in updateMembers()

Uneven primary ownership should be dealt with in rebalance() only.
Delegate the isBalanced() check in DefaultRebalancePolicy to the CH factory

Allows waitForRehashToComplete() to work even if the CH factory allocated
less than numOwners owners to each segment.