Update the CursorBase to include the new states for the cursor. 

Expand the CursorLifecycle to include cursor states and checking. 

Update OperatorExecutionBase to match CursorBase
Update ChainedCursor to have the complete state changes management from
CursorBase implemented. 

Review all the simple cursor uses and replace as possible to use the
ChainedCursor with the consistent state transitions and verifications.
LeafCursor update. Leaf cursors are (as the name implies) at the leaf of
the operator tree, hence getting their rows from something other than an
input operator cursor. This has some fallout effects on cursors
generated elsewhere.
Add MultiChainedCursor, for processing operators with two inputs and one
output.
RowCursorImpl - A lower level implementation of the RowCursor interface
to capture all of the CursorBase state change information for the
remaining uses of RowCursor. These are largely not Operator cursors but
are scattered throughout the system: Index and Group cursors for
scanning store data, Spatial cursors, FullText cursor, Sorter cursors.
QueryBindingCursor -> Interleaved work with the bindings cursor. 

Updated the OperatorITBase cursor state test to be accurate. 

All files compile, but no tests run.
Two fixed from test failures in the base tests. Base tests now all pass.
Clean up some of the missed RowCursor.destroy() uses by odd corners of
the code. 

Get the RestServiceITs to pass, as well as GroupLookup_DefaultIT, which
was the source of many problems. I anticipate the enhanced state
checking will keep me busy for a while. 

Correct the assumed cursor states in the
OperatorITBase#testCursorLifecycle().
Next round of fixes. Tweaking location of open/close in
AncestorLookup_Nested$readAncestorRow()

Add working jump() call to ChainedCursor to allow tests to work
correctly.

Remove a redundant method call from MergeJoinSorter$KeyFinalCursor
logging jdbcstatement and rest errors
Merge remote-tracking branch 'fdb/master' into logging
changed multiplecause handling
Manage RowOrientedCursorBase#jump(). In the new order of things, calling
jump can only occur when 1) the cursor is ACTIVE/IDLE, and 2) resets the
state back to ACTIVE, so next() returns a actual row. 

In IndexCursorUnidirectional, move the endKey setup from Initializer to
open(). This accounts for calling close()/open() to set up the endKey
properly, but not manging it when calling jump().
undo log4j change
remove uneeded import list
fixed comment
moved things to using logAtImportance
clean up
fixed getLogger call in JDBC
better name for function