Allow Linters to visit selectors

One problem that linters frequently face is the challenge of finding
lints based on the CSS selector of a rule set declaration.

Previously linters had to manually inspect the `rule` of a
`Sass::Tree::RuleNode` in order to check for lints. However, this
involved a lot of repeated code, and was usually hard to understand.

To DRY up some of these areas, introduce support for `Linter`s to define
`visit_*` methods for various selectors they are interested in visiting.

For example, to visit all ID selectors, define something like:

    def visit_id(id)
      ...
    end

There are some gotchas to this, however. If a selector contains any
interpolation, this won't work. This is because interpolation could
potentially change the type of selector. Consider the following:

    p #{$some-value} span { ... }

If `$some-value` = '+', then the selector will be `p + span`: a
`CommaSequence` containing a single `Sequence`. However, if
`$some-value` is a ',' then the selector will be `p , span`: a
`CommaSequence` containing two `SimpleSequence`s.

Thus the visitor can work only with selectors containing no
interpolation, as those are the only ones the Sass parser will parse
for us ahead of time. This should still cover a majority of cases.

Change-Id: Ic0c5728ce5a4c993da12de27a34aa91b61b20e65
Reviewed-on: https://gerrit.causes.com/28828
Tested-by: jenkins <jenkins@causes.com>
Reviewed-by: Greg Hurrell <greg@causes.com>