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 topology-aware 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.
ISPN-3414 Infinispan ignores DatabaseType configuration
ISPN-3449 ReplaceCommand with ignorePrevValue=true does not work on null entries

Use wrapEntryForPut instead instead of wrapEntryForReplace when
ignorePreviousValues == true.
Reformat Hot Rod protocol documentation to make it clearer