App Loading: don’t suppress app-registry related exceptions

This is just asking for trouble in the future. If someone comes up with
an edge case, we should add a test for it
app loading: use ImproperlyConfigured for bogus app names

This never worked but we’ll be more consistent and return
ImproperlyConfigured instead of a generic LookupError
Fix app loading call signature

Updated code from #1016 to ensure that get_models always
returns a list (previously on Django 1.7 it would return
the bare model when called with an argument of the form
`app.modelname`)

Add some basic tests
Travis: Enable IRC notifications
Allow apps without models.py on Django <1.7

This wasn't officially supported by Django prior to 1.7 but is used by
some third-party apps such as Grappelli

This commit adds a somewhat contrived test app to avoid future
regressions by ensuring that the test suite always has an application
installed which does not have models.py

See #1073
Tolerate non-importable apps like django-debug-toolbar

If your installed app isn't even a valid Python module, haystack will
issue a warning but continue.

Thanks to @gojomo for the patch

Closes #1074
Closes #1075
v2.3.1
Create an admin mixin for external use.

There are cases where one might have a different base admin class, and
wants to use the search features in the admin as well. Creating a mixin
makes this a bit cleaner.
Add some spacing
Document support for searching in the Django admin