Refactor Linter Results to not use a mixin

I was bored tonight. Details below. Naming still needs work and 
probably some rubyisms that I'm really bad at.

The Linter::ResultsHelper mixin is now gone and replaced by the
Linter::Results class. It handles warnings and errors and all the
merging logic. As a result, the analyzer now returns its results and
takes results through its constructor.

Still some todos:
* Add another parameter to warning/error to pass the property type that
  caused the error.
* Clean up the syntax a bit on the whole thing.