Move existing specs for View models

* were in a flat structure, needed to correspond to hits/mappings
Add a View::Mappings::Filter

* A starting point for getting too many fields out of MappingsController
* Encapsulates filtering and sorting, takes params and produces a
  mappings collection
Replace all the filter fields in the view

* Where they were, for example @incompatible_filter, change to
  @filter.incompatible?
* Tests mostly broken
Fix the tests

* Where @filter could be nil, use #try
* Unrecognised filter-by-types shouldn't count to Filter#active?
* Sorting by hits should count to Filter#active?
Move trailing slash to canonical_filter

* This was in the controller
* It didn't need to be, this is a job for the filter
Move tag filter_helpers to View::Mappings::Filter
Inline Filter#by_tag? and #by_tags?

* Use the collection methods #any? and #include? instead
Minor cleanups

* Didn't need a field for mappings
* consistency with local variable names in tag add/remove
Better comment for View::Mappings::Filter
Separate QS hash manipulation into own class
filter_by_type_path -> Filter::Query#by_type
remove_filter_by_type_path -> Filter::Query#remove_by_type
Move sort methods from helper

* To Filter::Query
Reorder View::Mappings::Filter fields

* Make it a little easier to see what's where at a glance
Filter knows about fields it needs to pass through

* Should enable last part of https://www.pivotaltracker.com/story/show/70586196, i.e
  "The non-JS version doesn't keep your parameters when you go back to the filter form"
Naming tweaks after discussion

* Query -> QueryParams (make clear it's not a DB query)
* with/without rather than add/remove
Don't put empty values on the query string in filters
Fix regression on New URL filter display

* Would display field on ?new_url_contains=&
Fix regression on Archive highlighting

* When filtering by new_url_contains and type == 'archive', a message is shown
  to indicate the two are incompatible and the "Archive" filter has been
  removed . This is once again reflected in the Type dropdown not having a
  selected value of "Archive"
Merge pull request #292 from alphagov/refactor-filter-sort

Refactor filter and sort