fix: don't delete reservations you don't have

Right now, if you lose a reservation and call `release()`, it'll delete a reservation that no longer belongs to you. This makes it so calling `release()` after losing a reservation is a no-op.

I tried to add a test case for this that:

1. Got a reservation on a resource
2. Changed the resource to be reserved by someone else
3. Waited for the reservation to detect the loss
4. Asserted that the resource was still reserved by someone else

Unfortunately, because `_ensure_reservation` is an asynchronous function that throws an exception, Mocha would catch that exception and fail the test case at step 3