Attaching document comments to AST nodes

Now document comments are attached to AST nodes and modules
Then when it comes time to add deprecation annotations, we can extend it pretty easily:

```haskell
data Declaration a =
    { decl :: a
    , comment :: Maybe String
    , deprecated :: Bool
    }
```