Some consistency in validation returns.

Public functions return a raw slice, internal helpers return errorList.
I think this is actually a delta between reviewers.  I originally suggested the Append method, because I also think that it's more readable.

I'm not sure that I'm really a full idiomatic Go convert though, so if majority preference is for the builtin append(...) I will quietly go back to my corner, but really the "there are these random built in functions, and everything else is a method receiver" in go [hello len(...), I'm looking at you]" is pretty inconsistent imho.