When attempting to recover using an unavailable choice (and in a supported environment),
Mulligan now raises `MissingRecoveryError`.
Of course `MissingRecoveryError` can be recovered from as it attaches a `RetryingRecovery`
in which you can specify an alternate choice for a recovery and try again.
Other changes include:
- The `Recovery` initialize method yields the new instance to a block for brevity.