Add utilities for ignoring CPP.

Code from https://github.com/jaspervdj/stylish-haskell/blob/2188b248a37157ba1f5c35a8674890ed80d0a3ef/src/Language/Haskell/Stylish/Parse.hs
Add NonGreedy and ListOf wrappers for parsing (refs #46)
Add nongreedy parsers for all parseable syntax datatypes
Add support for parsing things that need to be postprocessed with ParseUtils functions
Disable most nongreedy parsers in order to avoid a stack overflow in happy