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.
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
Clean up __wt_eviction_page_force function.

Also move split flag from modify structure to the page.
Merge branch 'develop' into split-hot-pages
Merge pull request #617 from wiredtiger/split-hot-pages

Split hot pages in memory. Pages are considered hot if they contain unwritable updates during a reconciliation.