Move the Linter::Result class into its own file.

Clears up a bit of the clutter inside of linter.rb and makes it clearly
it's own entity within the linter.
De-duplicate validation methods inside of the linter

Validation hook runners were essentially the same except by whom they
were targetting.
Remove extra commas in empty error message
Move the result helpers into the result file
Create an analyzer to encapsulate all specs analysis

tldr; moved a ton of code out of the linter into another class.

TODOS:
- Create a results mixin
- Separate out the validation into two sections for both consumers and
  specs
- Make sure documentation is good
Convert the result helpers to a mixin
Make only the results property public
Merge branch 'master' into linter-refactor

Conflicts:
	spec/specification/linter_spec.rb
Replace "spermy" with "approximate" to mirror the RubyGems change in terminology
in pull request https://github.com/rubygems/rubygems/pull/124
Fixed grammar.
Better linting for Github URIs.

Does not longer warn for Github repositories with OAuth authentication.
Merge pull request #77 from neonichu/fix_github_url_linting

Better linting for Github URIs.
[linter] Homepage should not require a trailing slash
[linter] Shouldn't expose an exception when validating homepage
[rubocop] Class definition is too long

Temporary solution until Kapin gets round to refactoring the linter
Merge pull request #78 from CocoaPods/homepage-linter

Homepage linter fixes
Changed "approximate" to "optimistic" per the consensus from @orta, @irrationalfab and @Kapin.
Merge pull request #76 from luisdelarosa/approximate_version_operator

Replace usage of the term "spermy" with "optimistic".
[Changelog] Also Core deserves one
[Linter] Move homepage validation logic to CocoaPods full lint