Fix #16666 by parenthesizing contexts in Convert
Most places where we convert contexts in Convert are actually in
positions that are to the left of some =>, such as in superclasses
and instance contexts. Accordingly, these contexts need to be
parenthesized at funPrec. To accomplish this, this patch changes
cvtContext to require a precedence argument for the purposes of
calling parenthesizeHsContext and adjusts all cvtContext call
sites accordingly.