Fix ScriptExtractor to work with for/while loops

We weren't properly generating code for `for` and `while` loops in HAML
documents. This was due to the fact that the regex we were borrowing
from the HAML parser did not account for these types of statements.

Modify our block keyword detection to include the two keywords `for` and
`while`.
Undump strings before yielding

The `ScriptExtractor`'s `extract_interpolated_values` method was
originally implemented by "borrowing" some code from the HAML parser
without taking the time to fully understand how it works.

It turns out that `String#dump` takes a string and escapes all of its
characters, so "something" becomes \"something\".

When the helper yielded an interpolated string, it was yielding the
dumped version, which ended up generating broken code. A hacky but
simple solution is to simply wrap the string in quotes and `eval` it to
convert it back to an unescaped string.

It's nasty, but it works.
Add more Cops to the ignore list

While testing `haml-lint` on some production code with no `.rubocop.yml`
configuration file present, there were a lot of lints being reported
that were of little to no value.

`IfUnlessModifier` and `WhileUntilModifier` report lints for
if/unless/while/until blocks that only have one line. Since in HAML
it is possible to have one or no lines of actual Ruby in these
blocks, this lint will be reported for cases that aren't really
useful, like in the case of:

    - if test?
      %tag

Ignoring this cop removes any noise received from this lint.

`TrailingWhitespace` reports on trailing whitespace, which will also
happen with interpolation, for example:

    %p Some #{ interpolated_text } text

It'll be better to detect this ourselves rather than have Rubocop do
it since the lint message "trailing whitespace" isn't descriptive.

`Void` reports lints for lines of code that don't do anything, for
example having a line with just the string (not in any method or block):

    "Hello"

While usually valid, the `ScriptExtractor` abuses this in order to avoid
'assigned by unused variable' lints, which are arguably of higher value,
so we explicitly ignore this lint to eliminate noise.