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 `StyleGuides::Null` object to fall back on for files we can't
  review.
We can memoize inside the case statement's branches. We only need one style guide per type. The method is invoked many times for whatever files are in the PR so it will get invoked a lot. Good call.