Research and rework Oscar's search app

_The whole treatment of search needs attention.  This is a work-in-progress issue to track requirements and open questions_

Requirements:

* Oscar should ship with a good default search that supports faceting and is easily customised.  But, for complex sites, it should be completely overridable.

Questions:

* Do we need Haystack?  We could only support Solr and put effort into writing a strong e-commerce-specific Solr adaptor.
* Should Oscar ship with search autocomplete?  Can this be made easy to configure/override?  Should we include autocomplete javascript?

Notes:

With Solr 4, you need to add:

    <field name="_version_" type="long" indexed="true" stored="true"/>

to your schema fields in `schema.xml`.  Also, replace `stopwords_en.txt` with `lang/stopwords_en.txt`.

Tasks:

* [ ] Add faceting support to sandbox (there is some faceting in the python code)
     - [ ] Support single-faceting (eg radio buttons)
     - [ ] Support multi-faceting (eg checkboxes)
     - [ ] Category facet
     - [ ] Availability facet
     - [ ] Price range facet
     - [ ] Category browsing views should use Haystack

* [ ] Install Solr in the Oscar Vagrant box
* [ ] Document how Solr can be configured (eg provide sample schemas for each version of Solr)
* [ ] Investigate using Haystack without the database lookups (see http://django-haystack.readthedocs.org/en/latest/best_practices.html#avoid-hitting-the-database)
* [x] Use dynamic imports for views/forms in `app.py`
* [x] Improve the suggestions view to return more product data (eg images, descriptions)
* [x] Make form dynamically pick up `facet.queries`
* [ ] Use Haystack to drive the category and offer browsing view (rather than using the database directly).
* [ ] Use a template tag for injecting the search form (not a template context processor)

Related issues:

* #686