More parsers

This implements the feature described in https://github.com/haskell-suite/haskell-src-exts/issues/46

Note that it includes the commits from https://github.com/haskell-suite/haskell-src-exts/pull/49, and resolves https://github.com/haskell-suite/haskell-src-exts/pull/51, so probably just this one should be merged, and the others closed.

Compatibility breaking changes:

* Change to the `AppFixity` class, backwards compatible for users of `applyFixities`.
* Adds a ton of `Parseable` instances, unlikely to have been written by any downstream users.
* Before there was `instance SrcInfo loc => Parseable (Exp loc)`, whereas now there is `instance Parseable (Exp SrcSpanInfo)`.  In other words, the user will need to do a `fmap fromSrcLoc` on the value inside the `ParseResult`.  I think this is a good change - otherwise for the majority of use cases there's an unnecessary `fmap id` over all the annotations in the AST.

Interface changes:

* Gives default implementations to the `Parseable` methods.
* Adds `parseModules*` functions.
* Deprecates `readExtensions`, in favor of an added `parseExtensions`.