Store MD5 of txn ID with timestamp cache.

Another problem I discovered with SERIALIZABLE transactions was unnecessary
restarts with a pattern like: read("a"), write("a"). The issue was that
the read would put a timestamp in the timestamp cache for "a". Then the
write would arrive for the same transaction and be forced to increment
the timestamp it found there (you're not supposed to change past history).

However, there's no reason to do the increment if the most recent entry
in the timestamp cache was the result of the current transaction. The
addition of the txn ID (well md5 of it anyway) to the timestamp cache
lets us ignore max entries which our own transaction was responsible for.

Also, changed "high water timestamp" in the timestamp cache to the more
accurate "low water timestamp".