Add non-greedy parsers for module heads

This is provides the module head parsers from the following pull
request:

https://github.com/haskell-suite/haskell-src-exts/pull/90
https://github.com/haskell-suite/haskell-src-exts/issues/46

And is a continuation of this pull request, which was merged:

https://github.com/haskell-suite/haskell-src-exts/pull/163