Take a copy of the update transaction ID in reconciliation in case we race with a rollback.  Go straight to aggressive eviction once the cache gets stuck.

refs #894
If a page is awaiting forced eviction, and LRU eviction fails, don't bump the read generation.
Update shared cache configuration options:

* Change enable to enabled to match log setting.
* Return an error if there is a shared_cache configuration string
  but it's not enabled and not explicit cache_size configuration.
Add upgrade doc for shared_cache config changes.

Also fine tune when we return an error in shared cache configuration parsing.
Update shared cache test to match configuration changes.
typo
Update sharec_cache configuration again.

Remove enabled option, set default value for name to empty, and require
that a name is provided if any shared_cache configuration is provided.

Also update upgrading documentation and tests.
If we underflow a page size during a merge, that should not be fatal: just limit the memory size transferred to the original page size.
Short circuit cleaning up reconciliation boundary structures.

The list of structures can grow very large, and cleaning up on each
reconciliation is a performance bottle neck.
Don't maintain the per-size skiplist unless it's an element on the live
"avail" list.  The problem is we're holding the live system's spinlock
when updating the per-size skiplist, and that appears to be a bottleneck.
Reference #924.
Add a fast path for file extensions so we don't walk the list of
allocations for workloads where we already know we want to either
extend, or add an element after, the last element.  Ref #924.
*shrug*  Don't put an if/else inside the for loop, it's not needed and
it may help the compiler figure out the code motion.

Assert we never append an entry that's in the wrong place.
whitespace
Inline the block extension function, do a fast check for available
bytes before doing a search.
Before merging extent lists, check if one is bigger than the other, and walk through the smaller one.  This requires that we track sizes for the temporary avail list we build during checkpoints, otherwise we can't make the size tracking match up after the merge.
Fix a comment: finish the sentence.
Rename use of WT_READGEN_OLDEST to WT_READ_GEN_OLDEST.

Since the variable name is different on this branch.
error: comparison between signed and unsigned integer expressions
[-Werror=sign-compare]
Bump version tag to 2.1.2 on develop.
lint

Originally fixed as part of larger change:
cc25faad1f24b2024b60ef242e60c77e51d38d93