Fixities improvements

This addresses issues in https://github.com/haskell-suite/haskell-src-exts/issues/4

I hope it's acceptable to use the `FlexibleInstances` extension, as https://github.com/haskell-suite/haskell-src-exts/issues/46 will benefit from it as well.

It's nearly possible to avoid `SrcSpanInfo`, by making the instances look like `SrcInfo loc => AppFixity (Exp loc)`.  However, the instances for `Pat` and `Exp` use `(<++>)` which is for `SrcSpanInfo`.  One way to get around this would be to add a `Monoid loc` constraint, which would require making `Monoid` instances for `SrcSpanInfo` and `SrcSpan`. See https://github.com/haskell-suite/haskell-src-exts/issues/48

The last change actually makes `FlexibleInstances` needed as well - it adds `instance AppFixity a => AppFixity [a]`.