Add SpaceBeforeScript linter

Add linter that checks for a space following the '-' or '=' symbols.

An unexpected complication arises when dealing with tags with inline
scripts that span multiple lines via a trailing comma or explicit
multiline vertical bars. In this case, we need to extract the text from
all lines and compare it against the parsed inline text (which is
stripped of leading/trailing whitespace so we can't check it easily) in
order to find out if a separating space exists.

The specs should describe these cases adequately.

In anticipation of many specs of this nature, add a shared example
context which normalizes any `haml` variable defined via `let` so that
the specs can be significantly DRYed up.

Change-Id: I286d6956e79cbbf73b5cc062765c78bf242a063e
Reviewed-on: https://gerrit.causes.com/28446
Tested-by: Shane da Silva <shane@causes.com>
Reviewed-by: Greg Hurrell <greg@causes.com>
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.

Change-Id: Ic4aff1c00f43a4d0e601fbc4702723493ea7afe8
Reviewed-on: https://gerrit.causes.com/28447
Tested-by: Shane da Silva <shane@causes.com>
Reviewed-by: Greg Hurrell <greg@causes.com>