Improve the look and feel and extensibility of the login/register pages.

The login and register pages have looked pretty terrible for a while,
and weren't at all extensible. This change cleans them up quite a bit
(both the visual style and the underlying code) and adds reusable CSS
classes and support for template hooks.

It also no longer hard-codes the description telling you to use your
standard username/password if registration is disabled. Instead, any
auth backend can provide login instructions, regardless of whether
registration is allowed. The instructions will appear immediately below
the header for the page.