Support namespaces for reverse url resolution.

This work was required for mysociety/pombola#937 to fix reverse resolution of
urls mounted under different namespaces.  e.g.  when mounting speeches urls
under /hansard/ versus /committee/ in Pombola ZA, we want

    {% url 'speeches:speech-view' xxx %}

to point to '/hansard/speech/xxx', as opposed to '/committee/speech/xxx'

Simply putting the namespace='hansard' in the include isn't sufficient, as per
https://docs.djangoproject.com/en/1.4/topics/http/urls/#url-namespaces
because there is no current_app attribute.

Have followed a strategy based on http://stackoverflow.com/a/13249060, and
pass the current_app attribute (*not* dictionary member!) within a new Mixin,
NamespaceMixin.

Have added this to all views (except RecordingAPI, as a) it didn't Just Work,
due, I think, to the context object being set up differently as it doesn't have
a current_app attribute, and so this requires more work to do, and b) the
Pombola use case motivating this work doesn't require it.)

As well as the overridden render_to_response (for template {% url %} tags), we
have to support reverse and reverse_lazy in the app.  Have added methods for
these to the mixin.

The last piece of the puzzle is the methods like get_absolute_url in models.py.
This would mean passing a reference to the current app into the model, which
seems fiddly (and possibly a bad idea), so I've instead simply edited the
templates to point to the relevant {% url %}.
(Currently for get_absolute_url only -- if required, this can be done for
get_edit_url and get_delete_url also)