hoistSpec : (f x -> g x) -> Spec f a b -> Spec g a bRe-target a spec from one effect monad to another, mapping every test
action and cleanup through the given natural transformation. Lets a spec
written as `Spec IO` run under the async driver via `liftIO`.