REF: implement Categorical.encode_with_my_categories
Categorical._validate_listlike is misleading, since it treats not-in-categories entries as NAs, whereas we usually want to raise when we see those.  This implements the more obviously-named encode_with_my_categories