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
Merge branch 'master' into linter-refactor

Conflicts:
	lib/cocoapods-core/specification/linter.rb
	spec/specification/linter_spec.rb
Remove redundant specs from the linter.

Porting over the last of the linter specs that are now used by the
analyzer over.
Merge branch 'master' into linter-refactor

Conflicts:
	lib/cocoapods-core/specification/linter.rb
[Rubocop] Lowever class lenght