Comment localization 2

This PR accomplishes a few small things:

- Implements the change discussed in #12: Comments on their own line will be grouped with the previous node if there is a comment grouped with the previous node that is aligned with it.
- Process comments from top to bottom (required for aforementioned change)
- During comment collection, store `NodeInfo` instead of just `SrcSpan` in the state (also required for aforementioned change)
- Fix printing of such comments.

In terms of my own test suite, there was a minor change, namely that I have decided that comment alignment should be _respected_ by hlint, but that hlint should not be responsible for aligning comments (that may be annoying sometimes). This made some previously failing tests pass when combined with the other changes.