Simplify rescue code

By using the same interface for validators and rescue handlers, the code is much simplified.

ping @tjoyal @sgnr 
`.fetch(:rescue_from_duplicate, false)`?