Adding tests and implementation for proper comment localization
Fix: Keep earlier nodes when searching for nodes a comment precedes
Fix: typechecking
Make sure that comments before nodes are on their own line. Add/fix test case
Adding tests for comment and case alignment
Implemented case alignment
Adding tests for formatting module export lists
Added pretty printing for module headers
Adding tests for spacing between module head and imports
Passing tests for module formatting, except for comments
Removing Debug.Trace usages
Module header formatting tests passing, including comments
Remove Typeable GHC 7.8 warning

This means that it won't compile on GHC 7.6. That's sad but the
warning is annoying as hell and I don't feel like writing some CPP to
mitigate it.
Fix warnings

@gibiansky so you can pull before hacking, avoids merge conflicts.