Part of the last change ("Copy the key out of the cursor we're duplicating,
otherwise memory can get discarded when that cursor closes", b132281c11)
isn't sufficient for table cursors: the primary cursor and the underlying
column groups have to be fixed up, not the top-level cursor.

We don't have enough information in the WT_SESSION call to do this in a
generic way, so, break __wt_cursor_dup() into two parts: the first part
(the allocation of the cursor), gets moved into __session_open_cursor, the
second part (copying the raw key from the original to the duplicate and
doing a search to position the cursor), gets moved into a new, private
WT_CURSOR function.

Fix the data-source comparison function to work with column-store tables.

Remove a duplicate initialization of the default WT_CURSOR.compare
function in __wt_cursor_init.
Pass the collator reference instead of the Btree handle to the "standard"
lexical comparison functions, then everybody can use the same macros.
Merge branch 'develop' into memrata
Replace calls to the collator function and __wt_btree_lex_compare with
the WT_LEX_CMP macro.