All Styles should export all top-level definitions

This allows other people to compose styles out of the various parts of
other people's styles. Furthermore, I have removed the restriction of
State type in Chris Done's style, to allow it be used over any state.
HIndent.Pretty should work over any MonadState PrintState
Adding tests and implementation for proper comment localization.
Fix: Keep earlier nodes when searching for nodes a comment precedes.
Fix: typechecking.
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.
Merge branch 'module-headers' of github.com:gibiansky/hindent into module-headers

Conflicts:
	src/HIndent/Styles/Gibiansky.hs