Add code to split pages in memory if we are failing to evict them.

We may be failing to evict them if they are being updated from many threads
concurrently. If we don't split those pages will continue to grow, and will
cause threads to attempt forced eviction agressively.
Merge branch 'develop' into split-hot-pages
Merge branch 'develop' into split-hot-pages
Implement the rest of splitting pages in memory if they can't be evicted.
Play with the code order so that memory management is cleaner.
Fix the WT_REF linking of the new pages.

Add in a hack so that swapping in the split works as expected.
Some tweaks to evicting larger pages now that page splitting is implemented.

* Don't retry forced eviction as often. With multiple threads retrying 100
  times in each thread can cause starvation and never get the pages out.
* Attempt to split pages once they become twice as large as the configured
  maximum.
* Setup newly split pages to be evicted.
Changes to page splitting as per review comments.
Move page split code into rec_split.c source file.

Some related function renaming. Also a bug fix from the previous commit.
whitespace
Periodically close session and connection dhandles that are no longer
used. (#586)
whitespace
When creating a Memrata object, the type has to be specified.
Only attempt to split a page in memory once.

Also attempt to split the first time reconciliation fails due to un-writable
updates, rather than waiting for multiple attempts.
Lint
Output the full path of the file we couldn't open, not just the name.
Ref #619.
Don't start the worker threads until everything else is done: it's
simpler, and we can remove the worker thread code to keep the worker
threads from racing with connection initialization.  Ref #619.
Code movement from review comments.
Add the WT_SESSION.create prefix_compression_min string configuring the
number of bytes that must be gained before prefix compression activates,
with a default of 4.

Quit documenting the WT_SESSION.key_gap configuration string: it's only
used when instantiating keys as the result of a reverse cursor scan, I
don't think it's interesting enough to surface to applications, at this
point.

Ref: #622.
The change in 3d2b80f5f6 broke the test suite, make the fix.