Asynchronous `unlock`.

`Cursor.unlock` in Strata is now asynchronous so that it can close open
file handles that are kept open during a per-page flush strategy. This
means that `unlock` in the MVCC iterator library is also asynchronous.
Thus, all calls to unlock iterators are now asynchornous.

Also, I found places in the tests where I was not creating a callback
using `step` but instead passing in the `step` function as the callback.
Not sure how those tests passed.

Closes #142.