Extract HamlVisitor from Linter class

In preparation for adding support for extracting Ruby code from a HAML
file, we're going to want to reuse the Visitor functionality provided by
the `Linter` class.

Extract this functionality into a `HamlVisitor` module which can be
included by any class that wants to be able to visit a HAML parse tree.

As a bonus, this also makes the visitor code easier to test, so add
tests for the new `HamlVisitor` class. In the process of doing this, the
`normalize_haml` spec helper was extracted, which is used to remove
excess indentation from a HAML heredoc for convenience in writing tests.