Add the addtional KVS configuration strings for all session methods, even
ones we don't support, otherwise, the calls fail with "bad configuration
string" instead of "unsupported method".
Add support for data-source cursor-range truncation.  It's messy because
truncation is a WT_SESSION method, but all we have to work with are cursor
handles.

Add a new, hidden cursor field, WT_CURSOR.range_truncate, that's set if an
object supports cursor range truncation.  Call the range_truncate method
when truncating a cursor range with a table's column groups.

Write a generic cursor range truncation function that iterates through an
object, deleting key/value pairs one at a time, and use that function as
the data-source cursor range truncation function.

Rename all of the cursor range truncation functions to include "range"
in their name.

Ref #584:
This is (hopefully) most of the work required for issue #584.  I haven't
tested the obvious combination, whether or not cursor truncate will work
inside a table that sits on top of an LSM tree, my off-hand guess is it
won't, but all we'll need to do is hook the LSM cursor to a range truncation
code (and the generic code will probably work until someone wants to write
something faster).
Don't collapse the configuration strings before saving a copy for the
subsequent index opens as that's an expensive operation.  Instead,
copy the strings as they're passed to us.