Base.Ordering: do not ever discard `order` parameter (#34719)
Prior to this commit, the `order` parameter was discarded if
either `by` or `order` was passed. However, there is a sane
interpretation for most of these combinations, and we should
use that interpretation for least surprise.
The one case that doesn't have an obvious interpretation is when a
non-trivial `order` is passed together with an `lt` function; in that
case it is better to error out rather than let it pass silently.