build_params in solr_backend.py ignores **kwargs leading to unnecessarily large solr responses

I noticed that when I do for example:

    SearchQuerySet().filter(…).values_list('pk', flat=True)

Django would request the FULL documents from the SOLR server, although SOLR supports specifying just the fields you want with the `fl` query parameter. This is quite wasteful if all you want is a list of pks.

I traced it to https://github.com/toastdriven/django-haystack/blob/master/haystack/backends/solr_backend.py#L628 where `build_params` ignores `kwargs` completely. In this case, `kwargs` contains `set(['django_ct', 'pk', 'django_id', 'score', 'id'])` which is EXACTLY what should be passed to `SolrSearchBackend.search()` to get the desired behaviour.

In short, having `build_params()` merge `kwargs` with `search_kwargs` and returning that would solve this nicely.

Is the reason for this the caching, or was it an oversight? It would be great to request only the data that we actually need from the solr server, and not the complete documents every single time.