`Descent` always has one lock.
`Descent` always has one lock.

Using a dummy page and lock as a head node, a `Descent` object will
now always hold a lock on it's page. When a `Descent` is forked, the
lock on the current page is incremented. Previously, a forked `Descent`
would not hold a lock on its page initially. This was because there was
no increment method on the locks and if the lock was exclusive a second
lock could not be obtained.

Now that descents always hold at least one lock, in the event of an
error, we can always release the lock on the pages of all descents.

Closes #270.
Closes #265.

cesarmarinhorj/strata,bigeasy/strata,cesarmarinhorj/strata,bigeasy/strata