introduce wait() semantics to all success() variants

All uses of `success()` in Base correspond to the `::AbstractCmd` variant (already with wait semantics). This fixes some of #3846 (not the assumption that only 0 is a successful exit code, though grep could just be a [deviant](http://tldp.org/LDP/abs/html/exitcodes.html)).