Merge pull request #557 from alphagov/fix_original_view_driving_licence_link

Changing method of accessing original view driving licence to POST
Explain why we use a FORM here

Specifically, we use a FORM because of Dragon Dictation - users are
likely to say something like "click the start button", which won't work
if it's a link as Dragon doesn't obey ARIA directives right now.

Also, we use a GET because the downstream service subdomain 405s POSTs
to its start page (as it should, really).
Merge pull request #558 from alphagov/notes-about-form-markup

Explain why we use a FORM here
Use latest slimmer - 3.28.1

this version has a fix for missing GA vars
for content that doesn't have need_ids.
Merge pull request #561 from alphagov/prod-fix-use-latest-slimmer

Use latest slimmer - 3.28.1
Bump slimmer to 3.29.0

This pulls in a change to report processor errors to Errbit.
Merge pull request #562 from alphagov/bump_slimmer

Bump slimmer to 3.29.0
Add multivariate experiment to UKVI contact path

In order to validate a hypothesis about contact channel shift we want to run an 80/20 experiment on the UKVI Visas and Settlement contact page.

Because the multivariate code doesn't support ratios I've included the same callback 4 times.
Merge pull request #563 from alphagov/contact-ukvi-contact-centre-ab-test

Add multivariate experiment to UKVI contact path
Don't register routes for specialist browse sectors

These are now generated by panopticon.
Merge pull request #564 from alphagov/dont_register_specialist_sectors

Don't register routes for specialist browse sectors
WIP patch to display the organisation facets in search results
Adding json endpoint for unified search

This sets up the endpoint used for updating the
unified search results page via filters.
Add Org filtering to unified search

Org filtering on Unified search needs pushState.
When available, it works via AJAX and if not,
falls back to working like a regular form.
Adding test for checkbox filter

Some of the tests currently don't pass, but they may not be needed.
Convert tests to jasmine 1.3 api.

They were written against the 2.0 api, but frontend has 1.3 so several
tests were failing.
Update filter JavaScript to be testable

- Merge the facet form and the input box so that all the fields didn't
  need repeating on the page
- Move from a couple of closured (hidden) functions for the live search
  to an open liveSearch object which could then be tested
- Added tests for the liveSearch JavaScript
- Included a helper method to check for history support
- Moved content for tags to the top of the view so they are all together
- Used a cache for ajax calls so we don't need to reload data on
  filtering
Restore checkboxes on back button

- Update cache to use serializeArray. This can then be used to itterate
  over when restoring checkboxes rather than parsing a querystring.
- Add restore checkboxes method and use it when poping the cache
- Move pushState to checkbox change so we don't push the state when we
  pop the state.
Trigger change event when changing values
Show update button for non-history people

For people without the history api they need the submit button to be
displayed.