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.
Add ScriptExtractor visitor

Add a visitor implementation which can extract Ruby code from a HAML
parse tree, storing both the extracted source code and a mapping of the
source code lines to the lines in the original HAML file.

This source code will be passed to a Ruby linter, which can then be used
to find lints in the original HAML via the source map.