Row search cleanups.

@michaelcahill, some (hopefully) minor row-search cleanups that have been on my list for awhile.

There are a couple of possibly interesting changes (which is why I didn't just merge this branch), I'll call them out separately in the code.
@michaelcahill, this is another interesting change.

The way the `WT_BTREE.appending` flag used to work was:
- cleared any time an internal page search didn't end up past the end of the page
- set any time the search of an insert list on a leaf page ended up past the current end of the insert list

I tried to make this better -- basically, if we append to a random insert list on a random page, there's no reason to believe we're appending to the tree, turning on a bunch of additional comparisons on internal page searches until another insert gets done somewhere else.

This tightens it up some:
- you have to append to a page before we set `WT_BTREE.appending` (although the page may be in the middle of the tree),
- we don't do the fast-append checks on leaf pages unless a previous insert did an append (which should avoid a comparison per insert when inserting into leaf pages)

I've added a comment in the code explaining where I was trying to go with this.  Would you please review and let me know if you have suggestions on how I can improve this?