Search improvements

Search was much improved in 0.6 but there are still things to add:

- [x] Sorting search results
- [x] Investigate Solr highlighting
- [x] Multi-faceting
- [ ] Template tag for injecting search form
- [ ] Allow category and offer pages to use Solr to generate results (and so facets can be shown)
- [ ] Use edismax

This ticket is a rewritten version of #423 
It seem slightly weird to me that the `__init__` methods for `ProductSearchHandler` and `SimpleProductSearchHandler` have different signatures as they are used polymorphically. I can see that only `ProductSearchHandler` needs `full_path` but it might be more elegant for them both to be `__init__(self, categories, request_data, **kwargs)` or something like that.