Some consistency in validation returns.

Public functions return a raw slice, internal helpers return errorList.
It seems like there isn't general agreement amongst the team on this one. @lavalamp and I are arguing for the x = append(x, foo) form, whereas you and @brendandburns are arguing for the list.Append() form (see a prior thread with similar arguments in #691). We need to come to an agreement, fix the entire project to be consistent, and then stop debating this point.