Recover has non-lazy evaluated option

Adding a non-lazily evaluated option to Recover. This is so that I can write:

    x.Recover("A");

Instead of

    x.Recover(() => "A");

when there is no extra cost associated with evaluating the recovery option.