Generalise search form query facet handling

No need to hardcode "price_exact" anymore.
Rework facet data extraction into a "Munger" class

(Not entirely sure if it's ok to have a class called a "Munger"...)

This changes allows the manipulation of facet data to be customisable by
converting the old function into a class. We're also able to split the
logic across a few methods to make it slightly easier to follow.
Rework facet munger with tests

Simplify the API to allow easier testing, and simplify the
implementation.
Tweak docs on Solr usage
Improve pagination summary for search results