Support eviction of pages that include unresolved changes.
    Split the page being evicted into two groups of blocks: blocks without
changes that cannot be written (cold blocks), and blocks with unresolved
changes that cannot be written (hot blocks).  Cold blocks are written
by reconciliation as usual, and the resulting block address copied into
the WT_PAGE.modify structure for eviction's use.
    Hot blocks: the disk image for each hot block is copied into the
WT_PAGE.modify structure, along with a list of WT_UPDATE structures,
one for each unresolved change that prevented the page from being
written.  Eviction then uses the disk image to create a new in-memory
page, and the list of WT_UPDATE structures to re-create the list of
unresolved changes on that page.
    Both cold and hot blocks are then moved into a WT_REF array, and
split into the parent page.
Free the multi-block reconciliation array of skipped updates, some other
related cleanup.
Make sure we clear/clean-up the stolen WT_UPDATE structure before
we move it from the original page/list to the new page/list.

Free the disk image when we're done with the page.
The order of the WT_UPDATEs matters, we can't simply pull out some of
them, we have to move th entire list of WT_UPDATE structures.
Don't set upd_skipped unless there was an invisible update skipped before
the one that was written (so a future reconciliation could see a different
value and the page should stay dirty).
Merge pull request #890 from wiredtiger/new-split-inmem

Support eviction of pages that include unresolved changes.