Do a store copy on join when there are no log files for the latest transaction.

I tried writing a test for this, but SwitchToSlave is hard to write tests for,
so the fix is provided without one.
Fix GC overhead of XidImpl

- Only allow equality of XidImpl instances, not the Xid interface,
  reasoning being that hashCode cannot be equal to other xid impls since
  there is no standard, and getting a xid that isn't a xidimpl is an error,
  since the xids come from our tx manager, we do not manage other xids.

- Don't copy the branchID and globalId arrays on every equaylity check