Initial spike of control comment logic

A commonly requested feature is to be able to disable checks with comments
inside your manifest files. This is a first prototype of this feature.

Blocks of lines can be ignored by boxing them in with `lint:ignore:<check>`
and `lint:endignore` comments

```
class foo {
  $bar = 'bar'
  # lint:ignore:double_quoted_strings
  $baz = "baz"
  $gronk = "gronk"
  # lint:endignore
}
```

Checks on single lines can also be ignored by just adding a trailing
`lint:ignore:<check>` comment to that line.

```
  $this_variable_has_a_really_long_name_and_value = "[snip]" # lint:ignore:80chars
```

Telling puppet-lint to ignore certain problems won't prevent them from being
detecting, they just won't be displayed or automatically fixed. If you want to
see what problems puppet-lint is ignoring, you can add `--show-ignored` to your
puppet-lint invocation.
Reason/comment support for ignoring checks via control comments
Merge pull request #266 from rodjek/control_comments

Initial spike of control comment logic