improved Txn restart behaviour

still WIP (tests missing for the second commit) but I thought I would share.

The NodeIDs of nodes that cause an uncertainty related restart are now stored within the Transaction associated to the request.
After having stored a NodeID, future read requests within the same transaction
can set MaxTimestamp = Timestamp in order to prevent uncertainty related
restarts for that node.

Implementing this should considerably impact performance in the relevant case
of a transaction reading a busy key from a node with a fast clock, which
otherwise would lead to repeated restarts until MaxTimestamp passes.
@spencerkimball we'll need MaxTimestamp for the serializability, that's why I didn't marry it off into SeenNodes.