Added `Tire::Results::Collection#each_with_hit`

Previously, there was no convenient way to access the data returned by Elasticsearch
such as `_score` when the `:load` option was used.

This commit implements the `each_with_hit` method for results collection:

    results = Article.search 'One', :load => true

    results.each_with_hit do |result, hit|
      puts "#{result.title} (score: #{hit['_score']})"
    end

    => One (score: 0.300123)

The model instance is returned in the `result` variable,
the raw Hash from Elasticsearch in the `hit` variable.

Closes #562, closes #406.
[#562] Cleaned up the unit test suite for `each_with_hit`
[#562] Cleaned up and added integration tests for `Results::Collection#each_with_hit`
[#562] Cleaned up the documentation for `each_with_hit` in README
[#562] Refactored the `Results::Collection#each_with_hit` method

Previously, the method has been calling the `__hit` helper method
on each iteration pass.

With this patch, the `Array#zip` method is used to iterate over
the `results` and `@response['hits']['hits']` Arrays in tandem,
removing the need for the helper method.

Added simple method documentation as well.