Some consistency in validation returns.

Public functions return a raw slice, internal helpers return errorList.
I found the allErrs.Append() pattern much easier to read overall - I changed it TO that in response to feedback on the original patch