Fixed #20532 -- Reverse auth views by name, not by path.

Auth views should be reversed by name, not their locations in
`django.contrib.auth.views`. This allows substituting your own
implementations of the auth views.
Changed the django.contrib.auth.views to be classed-based.