Broaden scope of houndable files beyond Ruby

A pure refactoring that should not add or remove behavior. Intended to make it
easier to add new style guides such as CoffeeScript, JavaScript, Sass, and
Markdown.

* Remove `relevant_line?` method that duplicates `modified_line_at`.
* Replace `ruby?` method with builder that determines style guide based on file
  extension.
* Remove extra `FileViolation` object, which added to the chains of objects and
  things to stub.
* Collapse `LineViolation` into newly named `Violation`.
* Introduce `StyleGuide::Null` object to fall back on for files we can't
  review.
* Add class documentation to describe responsibilities.
* Refactor commenting APIs to use fewer method parameters, more objects, fewer
  stubs in specs.