ISPN-3527 Transaction boundary commands can be completed before state transfer applies an active transaction

* Move the wait for transaction data from StateTransferInterceptor to
  InboundInvocationHandlerImpl.
* Use a BlockingTaskAwareExecutorService for potentially blocking commands,
  so that commands waiting for transaction data don't consume a thread.
* Decrease the maximum number of threads in the JGroups thread pools and
  add ManyTxsDuringStateTransferTest to confirm that state transfer doesn't
  use up all the threads.