Added docstring support to docgen

- Docstrings are now parsed around declarations as `DocStringDeclarations`.
- Docstrings on constructors for data declarations are parsed
- docgen prints out documentation along with type signatures.

I needed to copy a lot of code from `Text.Parsec.Token` so I could override its comment parsing to leave docstrings.  I had tried to copy a small subset, but there's a lot of interdependencies so it ended up easier to copy the whole `makeTokenParser`.  I'm open to any better suggestions.

There's some example output from purescript-drawing & purescript-node-args here: https://gist.github.com/obmarg/838c3770cb4b9a09e5c2

Not sure if this is ready yet, but thought I'd create a PR for discussion.  This is my first purescript contribution (and my first time working with a real haskell project) so feel free to tell me I'm doing it wrong.

I have compiled test-everything & starter-kit with these changes.  test-everything failed on purescript-string-parsers, but I checked and that was the behaviour against master, so don't think that's my fault.
I wonder if we should just include doc strings which are not associated with a declaration in between declarations. This would mean not having headers like "Types" and "Type Classes" but would allow developers to structure their code and have the comments interleaved with the docs.