Make ImplicitParams render correctly (#260)

This introduces a new precedence level for single contexts (because
implicit param contexts always need parens around them, but other types
of contexts don't necessarily, even when alone)
Lower precedence of equality constraints

This drops them to the new precedence pREC_CTX, which makes single
eqaulity constraints show up as (a ~ b) => ty, in line with GHC's
rendering. Additional tests added to make sure other type operators
render as intended. Current behavior matches GHC
Add RankNTypes test case to ImplicitParams.hs

This test actually tests what #260 originally reported - I omitted the
RankNTypes scenario from the original fix because I realized it's not
relevant to the underlying issue and indeed, this renders as intended
now. Still good to have more tests.