Overhaul horus view handling

Refactor the views module to limit code exposure to horus and fix
a number of outstanding issues.

- Correct the mis-registration of all auth related horus views as
  AuthController, when they each use different controllers.
- Implement a view mapper that acts on the horus class-based form
  views to coerce the result to a dictionary. This mapper pulls most
  of the request and response munging away from the horus view logic
  overrides, which are left as simple subclasses. Page views for horus
  now fire login/logout events and work around eventray/horus#43 for
  password resets.
- Improve error reporting by showing flash messages only for colander
  errors, letting horus handle the rest. Remove corresponding hack in
  client-side flash handling.