Add OrderedAnd patterns, and use them in `?` patterns.

This guarantees that patterns like (? pred pat) will
always check `pred` before matching any of `pat`.
However, `and` patterns are not required to match left-
to-right.