ISPN-2173 NPE when using XA enlistment without recovery

If recovery is not enabled the call to TransactionXaAdapter.forget() must be no-op instead of failing due to NPE.
ISPN-2549 Invalidation mode caches with pessimistic transactions may result in stale remote locks

* In transactional mode InvalidationInterceptor.invalidateAcrossCluster() should not just send a bare InvalidateCommand to the other nodes. The invalidate command should be wrapped in a PrepareCommand so it executes in a transaction and locks can be acquired and release appropriately.

* EntryWrappingVisitor must also visit InvalidateCommands. This was not needed until now because invalidation was never executed in tx.