Change __wt_buf_grrow_worker to copy non-local data into place, this
simplifies some other code in the system.

Change buffer init calls to clear the buffer data size before calling
the grow function -- it shouldn't be necessary, but it clarifies what
is happening.
Kluge to make ex_call_center work in this branch, probably not the
correct fix; what's going on here is that if the key is a recno,
buf.data points at the cursor's recno field, and we're writing into
it, not into the WT_ITEM at all.
Revert 8795d9b, it makes things worse, not better.
Don't create log records if we aren't going to write them.
Fixes a performance regression introduced by 14b718e31cf7c2c88bb3b38d9b7150fc57ad315c.O
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.
Cleanup places where the schema layer uses a WT_ITEM to read/write from a record number.
Merge pull request #978 from wiredtiger/txn-id-on-update

Defer allocating a transaction ID until an update is made.
Merge pull request #977 from wiredtiger/buf-grow-simplify

Some additional buffer management cleanup.
Don't use "page" variable names for WT_REFs: it's confusing.
Don't skip pages when writing a checkpoint if the transaction doesn't have a checkpoint.  This happens in several paths, including for metadata checkpoints, and also on close.

refs #969, #963, maybe #976?
whitespace
Add a big honkin' comment to explain when checkpoint can safely skip writes.
When restoring a page with updates after a split, free any resources cached in the cursor.

refs #971
The disk header in a page is read-only: mark it const.
whitespace