REF: use _validate_foo pattern in Categorical
Similar to how we did it in datetimelike, eventually these validator methods are going to end up sharing most of their code
The related others are  #36173 (just rebased), #36180, #36171, #36176