Refactor Linter class to use Visitor pattern

The current implementation of the `Linter` class was a bit awkward in
that we had to manually check the type of the node when traversing the
parse tree.

It turns out Sass provides a Sass::Tree::Visitors::Base implementation
which we can use to remove a lot of duplicate code from our linter
implementations, replacing repetitive `if` statments with single
`visit_*` declarations.

This also changes the `Linter` class to no longer just have class
methods, and is now intended to be directly instantiated instead of
invoked via class methods. This has the added benefit of making it
easier for us to create linters that span multiple files.

Some specs had to be modified to fit the new `Linter` interface, but
nothing drastic was changed.

There's no intended behavioural change resulting from this refactor; it
should just make creating lints easier.

Change-Id: Ib36070bc42c47de3a6af26258d407bb61b31b09c
Reviewed-on: https://gerrit.causes.com/19836
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>
Call to_sass rather than to_s on nodes

`to_sass` does the right thing; `to_s` is for internal use and fails for
certain cases (e.g. node is a Sass::Script::List containing a function
call).

Ideally the spec I added here would be `subject.count.should == 1`, but
it's 0 presently due to the way we compare strings rather than actually
evaluate the Sass.

As a future improvement, we should see if we can determine the result of
these function calls (or at least improve the regex). This commit simply
keeps scss-lint from crashing on this input.

Fixes #11.

Change-Id: I51df3a678786a002c42c2375c3090d514387a867
Reviewed-on: https://gerrit.causes.com/19896
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Aiden Scandella <aiden@causes.com>