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
Add validation to prevent model slugs clashing with slug redirections

Previously, it would have been possible in the admin interface to change
the slug of a person (say) to a slug for which a redirection is already
in place.  This adds validators to Person, Organisation and Place which
stop someone from doing this.
Merge branch 'fix-all-slugs'