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.
Don't you need to handle the `Nothing` case here?