The smallest and largest value in values, skipping nulls and NaNs.
Takes no descending/nulls_first: a minimum and a maximum are absolute, and reversing
the order would only exchange the two answers.
Aborts when every value is null or NaN -- there is nothing to return, and no
sentinel exists across all nine types. This matches pf_nth_quantile's decision for the
same degenerate case; guard with count(is_valid) where that can happen.
Use pf_argminmax when the positions matter rather than the values.