Implement a SearchResultsCollection entity.
Modify GoogleCustomSearchResponseMapper to handle a paginated response.

Refactor the spec a little too.
Modify GoogleCustomSearchEngine to use modified mapper.

Small amount of tweaking to spec.
Add attributes to SearchResultCollection to hold metadata for paginated results.
Modify Searcher to allocate pagination metadata from the repository to the collection entity.
Modify GoogleCustomSearchEngine to request paginated results.
Modify Searcher to accept a page to select paginated results.
Add a bunch of helper methods to SearchResultCollection.
Move GoogleCustomSearchEngineResponseMapper to GoogleCustomSearchEngine::ResponseMapper.
Add dedicated mapper class for Google CSE response items.
Namespace specs to shorten the line length of some expectations.
Reuse provided pagination details in results.

Rather than the ones returned from Google.

Also fixes a bug in that the returned 'count' was incorrectly being used as 'per page'. On the final page of results the count will often be a smaller number than 'per page'.
Add actual pagination functionality to site.
Refactor Searcher for a more OO structure.
Modify searcher so you can't request more than 5 pages of 10 results.
Modify SearchResultCollection so the pagination details respect search limitations.

If you request say, page 6 of 5 possible results, it will return what you get, which is page 5 of 5.

If you search for something that returns say, 100 results, when we have set the limit at 5 pages of 10, the pagination will display 50 as the total count.
Translate pagination.
Implement a SearchResultCollectionDecorator, greatly simplifying SearchResultCollection itself.

- SearchResultCollection is no longer a subclass of Entity as it never really used any of it's behaviour.
- SearchResultCollection is now much lighter weight, as a lot of the functionality in it was only being used for view interaction, so is now in a decorator.
- SearchResultsController is now a bit simpler, with only one var being decorated and passed to the view.
Refactor the Searcher initialize method signature.

More like the typical will_paginate pattern and makes for a cleaner controller.
Merge branch 'search-pagination'