C cursor

This is in a reasonably working state. Outstanding issues in order of importance are:
 [ ] search and iteration tests with larger tree depths (use large keys to fill the branch pages)
 [ ] search uses linear search instead of binary
 [ ] C code could be further refactored, e.g.
  * merge cursor_first_leaf and cursor_key_value
  * factor out common parts of the public functions

@benbjohnson, @snormore