Refactor Linter Results to not use a mixin

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.
Fix syntax error in the result_spec
Appeasing the hound
Fixing error messages and tests
[Linter] Clean up new Results class usage to be more idiomatic Ruby

Thanks to @AliSoftware and @Kapin!
Merge pull request #131 from CocoaPods/refactor-linter-results

Refactor Linter Results to not use a mixin
[Dependency] Add a cached prerelease? accessor
[Set] Remove unused resolver-related attributes/method
[Specification] Create subspec dependencies with a version requirement of self.version

@kylef this is one performance optimization for the resolver
[Set] Use #join instead of *
[Specification] Add raise_if_missing parameter to subspec_by_name