Renamed addExternalValidator to addValidator
Added an "options" parameter for custom validators
Added an option "name" for custom validators to identify which
validator caused a fail
Adding a non-function as a validator now causes an exception