Avoid running all core, hansard and search tests twice

Before switching to nose as our test runner, all the tests had to be
in a single 'tests' module in each application.  However, when using
nose it will find tests whereever they are and it'll find them twice
if you import them into __init__.py as well.  This slows down the
tests and produces double the output when there are errors, so leave
nose to find them via each module in the tests package.
Factor out SlugRedirect-based slug redirection into a mixin

We'd like to be able to reuse this code to provide slug redirection
for other DetailView-derived views, based on their 'model' class
attribute.
Add a test to check that redirection of Person slugs works
Add slug redirection for PlaceDetailView and OrganisationDetailView
Support redirection of People, Organisation and Place sub-pages
core_list_malformed_slugs: create slug redirections where possible

If there's a model that has a corresponding DetailView that looks for
slug redirections *and* the old malformed slug would actually have been
matched by the url patterns, then create a SlugRedirect when correcting
the malformed slug, so avoid breaking any bookmarks where possible.
core_list_malformed_slugs: check the new slug doesn't already exist

If an object of the the same model with the new slug already exists then
renaming another object's slug to the new slug would fail, so exit with
an error in that case.
Use stricter validation of slugs in the admin interface

Make sure that slugs aren't created via the admin interface
that contain capital letters, for consistency with the check
done by core_list_malformed_slugs.
Move the new slug validation into a slug_helpers package
Apply the stricter slug validation to all other uses in Pombola

Previously this checking was only applied to the models in core.
Move SlugRedirect and its helpers into their own Django application