Keeps explicit state whether a transaction is remotely initialize or not

instead of relying on lock information (whether any lock was grabbed or
not). There was a problem where the "old" transaction state was checked
for locks and not the new one (the one in the Kernel API), or preferrably
both should have been checked. But that approach was error prone so an
explicit flag is better and safer.

Also renamed TxHook --> RemoteTxHook because that name and its method
names were so misguiding that it slowed down reasoning around problems
where it was involved.

The fix in this commit is for a regression from 1.9, but may also fix some
other corner cases with remote transaction management.