imp: make Arg::validator more flexible
imp: make Arg::validator more flexible

Makes the validator functions more flexible by changing the return
type from Result<(), String> to Result<O, E> where O is anything
and E is anything convertible to a String.

This allows, for example, using the same function for validating
and parsing your argument.

Breaking change (albeit tiny) due to function signature change.

clap-rs/clap,clap-rs/clap,clap-rs/clap