added support for additional error messages from validation predicates that return a vector of the form [true, nil] or [false, errors]