Solr backend: run() kwargs are passed directly to search backend

This allows customization by subclasses and also fixes #888
by ensuring that the custom field list prepared by 
`ValuesQuerySet` and `ValuesListQuerySet` is actually used.
ElasticSearch backend: run() kwargs are passed directly to search backend

This allows customization by subclasses and also fixes #888
by ensuring that the custom field list prepared by 
`ValuesQuerySet` and `ValuesListQuerySet` is actually used.
Make sure DJANGO_CT and DJANGO_ID fields are not analyzed
Tests: skip Solr content extraction with old PySolr

Until pysolr 3.1.1 ships there's no point in running the Solr content
extraction tests because they'll fail:

https://github.com/toastdriven/pysolr/pull/104
Merge pull request #888 from acdha/888-solr-field-list-regression

Solr / ElasticSearch backends: restore run() kwargs handling

This fixes an earlier regression which did not break functionality but made `.values()` and `.values_list()` much less of an optimization than intended.

#925 will be a more comprehensive refactor but this is enough of a performance win to be worth including if a point release happens before #925 lands.
Tests: update pysolr requirement to 3.1.1

3.1.1 shipped a fix for a change in the Solr response format for the
content extraction handler
Tests: remove legacy targets

* Django 1.4 is no longer supported as per the documentation
* Travis: use Python 3.3 targets instead of 3.2
Update tutorial.rst
Ignore missing index during .clear()

404 in indices.delete can only mean that the index is there, no issue
for a delete operation

Fixes #647
Ignore 404 when removing a document from elasticsearch

Fixes #942
Add a note on elasticsearch-py versioning with regards to 1.0
Solr backend: correct usage of pysolr delete

We use HAYSTACK_ID_FIELD in other places but the value passed to
pysolr's delete() method must use the keyword argument ``id``:

https://github.com/toastdriven/pysolr/blob/v3.1.0/pysolr.py#L756

Although the value is passed to Solr an XML tag named ``<id>`` it will
always be checked against the actual ``uniqueKey`` field even if it uses
a custom name:

https://wiki.apache.org/solr/UpdateXmlMessages#A.22delete.22_documents_by_ID_and_by_Query

Closes #943
Fix typo with instantiating Distance units
Merge pull request #946 from gkaplan/spatial-docs-fix

Small docs fix for spatial search example code
Fix logging call in SQS post_process_results (see #648)

This was used in an except: handler and would only be executed when a
load_all() queryset retrieved a model which wasn't registered with the
index.
Fix concurrency issues.

We were getting this error a lot when under load in a multithreaded
wsgi environment:

    Model '%s' has more than one 'SearchIndex`` handling it.

Turns out the connections in haystack.connections and the
UnifiedIndex instance were stored globally. However there is a race
condition in UnifiedIndex.build() when multiple threads both build()
at once, resulting in the above error.

Best fix is to never share the same engine or UnifiedIndex across
multiple threads. This commit does that.
Merge pull request #938 from Mbosco/patch-1

Update tutorial.rst
Fix possessive "its"
Merge pull request #968 from tobych/patch-1

Fix possessive "its" in tutorial.rst
Fix typo; clarify purpose of search template