Travis, Tox: add Django 1.7 targets
Update Travis & Tox config

* Tox: wait for Solr to start before running tests
* Travis: allow solr & pip downloads to be cached
* Travis now uses start-solr-test-server.sh instead of travis-solr
* Test Solr configuration uses port 9001 universally as per the
  documentation
* Change start-solr-test-server.sh to change into its containing
  directory, which also allows us to remove the realpath dependency
* Test Solr invocation matches pysolr
    * Use get-solr-download-url script to pick a faster mirror
    * Upgrade to Solr 4.7.2
Tests: don't suppress Solr stderr logging

This will make easier to tell why Solr sometimes goes away on Travis
Refactor get_model_ct to handle Django 1.7, add tuple version

We have a mix of model _meta access which usually expects strings but in
a few places needs raw values. This change adds support for Django 1.7
(see https://code.djangoproject.com/ticket/19689) and allows raw tuple
access to handle other needs in the codebase
Consolidate model meta references to use get_model_ct (see #981)

This use of a semi-public Django interface will break in Django 1.7
and we can start preparing by using the existing
haystack.utils.get_model_ct function instead of directly accessing
it everywhere.
Haystack admin: refactor to use get_model_ct_tuple
Refactor simple_backend to use get_model_ct_tuple
Use get_model_ct_tuple to generate template name
Tests: add MIDDLEWARE_CLASSES for Django 1.7
Unpin elasticsearch library version for testing
Tests: Whoosh test overhaul

* Move repetitive filesystem reset logic into WhooshTestCase which
  cleans up after itself
* Use mkdtemp instead of littering up the current directory with a
  'tmp' subdirectory
* Use skipIf rather than expectFailure on test_writable to disable
  it only when STORAGE=ram rather than always
Mark 2.2.X as incompatible with Django 1.7
Add Django 1.7 warning to Sphinx docs as well
Django 1.7: ensure that the app registry is ready before tests are loaded

The remaining test failures are due to some of the oddities in model
mocking, which can be solved by overhauling the way we do tests and
mocks.
Mark expected failures for Django 1.7 (see #1069)
Update tox Django version pins
Django 1.7 compatibility for model loading

This refactors the previous use of model _meta.module_name and updates
the tests so the previous change can be tested safely.

Closes #981
Closes #982
Start the process of updating for v2.3 release
Django 1.7 support for app discovery

* Refactored @Xaroth’s patch from #1015 into a separate utils
  module 
* PEP-8 cleanup
Remove Django version pin from install_requires