Allow multiple fq parameters to be added

Before this commit, sunburnt would combine all filters into one fq
parameter.  This means that the combined filter would be added to Solr's
filter cache.  But often what we actually want is for each filter to go
into the filter cache separately, so they can be reused and recombined
efficiently.

So in this commit we create a FilterOptions class that maintains a list
of LuceneQuery objects.  When the options() method is called it returns
a list, and when this is URL encoded, we end up with multiple fq
parameters.

It's possible that this will cause minor changes in behaviour for
existing users of sunburnt.  The results returned should be the same,
but the filter cache usage will be different.  For most users I imagine
this is going to lead to better performance, but it's possible it might
have a negative impact on some use cases.
Refactor common code in search tests
Add tests for q vs fq handling across multiple queries

We expect all query calls to be combined into a single q parameter, but
we expect each filter call to produce a separate fq parameter
Merge branch 'multiple_fq_params' into aptivate

* multiple_fq_params:
  Add tests for q vs fq handling across multiple queries
  Refactor common code in search tests
  Allow multiple fq parameters to be added