Refactor back end authentication

Change the authentication to encapsulate it better within the h.auth
package, removing details from h.api and making more idiomatic use
of OAuthLib.

- Move ``h.auth.local`` to ``h.accounts``.

- Split remaining pieces of ``h.auth`` into an ``h.oauth`` package and
  modules ``h.authentication`` and ``h.authorization``.

- Move ``h.interfaces.IConsumerClass`` to the ``h.oauth`` package and
  rename it ``IClientClass``.

- Add ``request.get_client`` and ``config.set_client_factory``.

- Drop pyramid_multiauth and replace it with better considered use of
  pyramid_oauthlib.

- Stop the confusing double-use of 'request.user' by unsetting the
  request property set by horus.

- Move session configuration to h.session.

- Drop the consumer/client implementation in the accounts system in
  favor of shipping only with a default. This is a place that can be
  expanded later once there is a model in place for relating
  authorizations, clients and users. Until then, the default will
  be sufficient.