SearchResultsPresenter returns prev and next links

This changes the SearchResultsPresenter class to calculate and return
the pagination links for search results. 

The class exposes methods to return the next and previous page link, 
labels for the links which provide page numbers for context, and two 
boolean methods to assert whether there is a next or previous page 
present.

These new methods are exposed in the to_hash method, so that they can 
be easily used in the Mustache templates.
Add pagination links to search results

This adds next and previous links to search results when there are 
multiple pages of results. 

I've copied the pagination css helper from Whitehall for the purpose of
making this work and look consistent. In the future, we might want to 
extract this into the frontend toolkit.
Add a couple of comments
Validate that 'start' and 'count' are positive

This changes the SearchResultsPresenter to raise an exception on 
initialize if either the 'start' or 'count' params are negative.

This means that we can simplify the has_next_page? and 
has_previous_page? methods.
Don't allow a negative 'start' parameter at /search

This changes the SearchController to override the 'start' parameter to 
be zero if the value is negative. 

This corresponds to changes to the SearchResultsPresenter in the 
previous commit, and it will also prevent 503s caused upstream by 
Rummager rejecting 'start' parameters which are negative or non-numeric.
Merge pull request #655 from alphagov/search-pagination

Add pagination to search