Defer allocating a transaction ID until an update is made.

References #975
Useful for read-only workloads that use explicit transactions.

Not yet ready for review/merge. I haven't tested to see if it helps my workload yet.