Add a cursor operation to skip the in-order key check in a row-store,
configure it from LSM.

Explode the bulk cursor insert routines into a routine per btree type.

Reference #1127.
Put the general-purpose smoke-test of bulk load first, fix a comment.
When splitting out the variable-length column-store bulk-load function,
I broke it, inserting a non-existent record, the salvage test caught it.
Don't hold the checkpoint lock when flushing leaf pages during close or
in preparation for a checkpoint; reference #1114.

Add a new spinlock, WT_BTREE.flush_lock, that is acquired whenever the
leaf pages are written.

Change checkpoint to write leaf pages before acquiring the schema lock
(this is done by first using the schema lock to get a list of URIs that
we're going to checkpoint, then releasing the schema lock and flushing
those URI's leaf pages, then reaquiring the schema lock for the rest of
the checkpoint).

Change handle close to write leaf pages before acquiring the "close"
lock that blocks checkpoint.

Change the checkpoint API call to set the WT_SESSION_NO_CACHE_CHECK
flag, so the checkpoint thread isn't highjacked to do forced eviction.
Once the methods are broken apart, there's no reason to test
WT_BC_SKIP_SORT_CHECK here.
If we're not comparing against the next key, there's no reason to save
a copy of the current bulk key.
Delete the bulk cursor's WT_BC_SKIP_SORT_CHECK flag, it's not needed.
In function '__wt_bulk_insert_row_skip_check':
error: variable 'cursor' set but not used [-Werror=unused-but-set-variable]
Merge the mid-level of the bulk code into the cursor level.
unused variables ref, page
Merge pull request #1138 from wiredtiger/skip-bulk-sort-check-merge

Merge the mid-level of the bulk code into the cursor level.
Make comment logic match the code (zero/non-zero).
Merge branch 'develop' into relax-checkpoint-lock
Remove uses of the checkpoint lock other than serializing checkpoints:
compact holds the schema lock, so it doesn't need to hold the checkpoint
lock, the new WT_BTREE handle close lock prevents checkpoints from
colliding with handle close, so LSM doesn't need the checkpoint lock
either.

Minor cleanup, bug fixing, code shuffling.
I believe the read-write-modify cycle of the metadata when we create a
checkpoint is always done under the schema lock; add an assert, I think
it's dangerous if that's not true.
Bump release version to 2.3.1 on develop branch.
Merge pull request #1135 from wiredtiger/skip-bulk-sort-check

Add a cursor configuration to skip the in-order key check in a row-store bulk load.
Remove extra brackets from WT_WITH_DHANDLE op.
Merge pull request #1136 from wiredtiger/relax-checkpoint-lock

Don't hold the checkpoint lock when flushing leaf pages
Add a way to skip tests that rely on diagnostic builds.  Use that for the out-of-order bulk-load test.