Simplify rescue code

By using the same interface for validators and rescue handlers, the code is much simplified.

ping @tjoyal @sgnr