Add support for Solr's facet.range query

It's currently for Solr only. Example:

```py
>>> sqs = SearchQuerySet().model(Product).filter(for_sale=True)
>>> sqs = sqs.range_facet('price', start=0.0, end=100.0, gap=20.0)
>>> results = sqs.facet_counts()
>>> print results['ranges']['price']
{u'start': 0.0, u'counts': [u'0.0', 29, u'20.0', 1, u'40.0', 1, u'60.0', 1, 
u'80.0', 2], u'end': 100.0, u'gap': 20.0}
```

Hint: max price you would normally get via `stats`:

```py
>>> sqs.stats('price').stats_results()['price']['max']
95.0
```
Can you break this into a separate change? It's a good idea but not specific to this feature