Defer allocating a transaction ID until an update is made.

References #975
Useful for read-only workloads that use explicit transactions.
Ensure an updater transaction ID is allocated for different cursor types.
Snapshot transactions need to setup snap_min.
Simplify transaction setup for pure read-only workloads.  Also, now that we support read-only transactions, there is no need for any special handling of the checkpoint transaction: it won't allocate an ID for itself in the global table.

refs #969, #978
Don't allocate transaction IDs in page in, and some name changes.

Transaction IDs only need to be allocated for updates, so allocating them
on during __wt_page_in is overkill.

Rename some of the transaction ID functions to be more user friendly.
Clarify the different states a transaction can be in: running or idle, with an ID and/or with a snapshot.  Allocate an ID just before we log the first update.  Also allocate a transaction ID in the extension API, for extensions that require one.
Merge pull request #978 from wiredtiger/txn-id-on-update

Defer allocating a transaction ID until an update is made.