Some consistency in validation returns.

Public functions return a raw slice, internal helpers return errorList.
This function returns a []error. Why create an errorList and then cast it at the end rather than starting with the return type?