Simplified comment parsing.

Also switched to using "-- |" to indicate comments.
DocStringDeclaration can now hold declarations.

This updates DocStringDeclaration to hold a doc string and more
declarations, similar to PositionedDeclaration.  This should allow us to
associate doc strings with their declarations.
WIP of nested docstring parsing
Copied more of makeTokenParser from Parsec.

My initial override of makeTokenParser didn't override every single
function in the token parser, only the ones I thought that needed the
new behaviour.  Was seeing some weird behaviour though, so I've copied
the entire thing over for now.  Can play about later and see if there's
anything to cut down.