2.0.0. Do not modify validator Array argument on validation

Validating with a validator that has an array argument fails if validate() is called twice on the same model since `next` is prepended to the validator argument array.

These changes copy the argument array before prepending to it so it is not modified.