Remove browse controller and views
Remove browse routes

Remove the routes to /browse, and the special-case routes for
/visas-immigration and /business.
Remove browse stylesheet

As these styles are not used elsewhere in Frontend, remove the browse
SASS stylesheet from the asset directories.
Remove visas-immigration redirects

@Shotclog has added these to the router-data repository
(see https://github.gds/gds/router-data/pull/100) so we can safely
remove these from here.
Stop registering routes for browse

Remove the /browse, /business and /visas-immigration paths from
the router registration task.
Merge pull request #627 from alphagov/remove-browse

Remove mainstream browse from Frontend
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
Add a visually hidden result count

For aria-live to work, the bit that is read out needs to remain on the page (not be swapped out by the javascript). Putting a visually hidden result count that remains on the page and is then updated by the javascript means that when the result set has finished updating screen readers will read out the new result count.
Extract result_count_string to method

So that we can call it from the @results object outside of mustache for the aria-live result count, extract this to a method.
Add JS to update div outside of mustache

When the results have been loaded, JS now updates an aria-live region on the page with the result count. This means screen readers will read out the new result count.
Add a couple of tests for new aria updating
Add aria-hidden to mustache count

For screen readers the count appears outside of the mustache template so it is always on screen and always read out, so we can aria-hidden=true it here so it doesn't get read twice.
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
Merge pull request #656 from alphagov/improve-aria-roles-for-live-search

Improve aria roles for live search
Bump slimmer

The main impetus here is to get a version which requests assets from
production rather than preview in test (which was introduced in 4.1.1).
Use production assets in Jasmine tests

Also remove the static application.js file as it shouldn't be needed for
tests.