Get chunks of Cursor working.

    * Stop using new-style classes. It seems implementing __iter__
      (or something else) causes the object layout to change, breaking
      the ability to swap the instance's type.

    * More work in getting reference counts and invalidation correct.

    * Thoroughly document Cursor, rewrite some methods to work sensibly.

    * Basic cursor tests.
Documentation, tests, correctness.

    * Use void* instead of char* in MDB_val (cures compiler warning)
    * Disable -Wshorten-64-to-32, a review of various instances
      suggested all these warnings are spurious
    * Reformat docstrings for readability.
    * Add more delete unit tests, disable crashy test.