Squash session and profile; auth and account

These resources are one resource on the backend. The pattern of
preserving object identity for the session response is unnecessary.
The identity module now listens for events on the root scope instead
of watching the session. The auth controller publishes the session
change directly and the auth directive is completely removed. Timeout
is handled in the controller.

Include the account and auth forms via a macro in the blocks template
so that all the dialogs can be overridden together and get rid of the
``show-account`` directive.
Decouple identity and authentication

Pull the identity service out of the auth module so that it can be
used separately. Wrap the service in a provider with properties
that applications can configure to adapt to different authentication
environments. These properties provide a way to configure injected
functions that the identity service can invoke in order to fulfill
requests from client applications for authorization grants without
tying the identity service itself to particular implementations of
sessions or authentication.
Move the account controller into the auth module
Add ngdocs to the session module
Remove auth bundles from app bundle

They are already required separately in the layout.
Drop theme.css

The theme CSS bundle only holds the icomoon CSS. Having it but
not separately minifying it causes broken paths when changing
between dev and production since it does not differ between
configurations. Just remove it.
Start to simplify our angular namespaces

Move toward cleaning up our angular namespaces and organization. By
flattening our namespaces and changing our file naming we're able to
reduce the boilerplate needed for angular module and asset bundle
definitions.

- Kill all the ``h.*`` angular submodules except for ``h.auth``,
  ``h.helpers`` and ``h.identity``. This vastly reduces the amount
  of dependency repetition throughout our angular files as all
  the dependencies of the entire main h module can be declared in
  app.coffee and all the other files simply add their exports to
  the main module.

- Add a helpers/helpers.coffee module definition file so that the
  rest of the helpers can use the 1-arity ``angular.module`` getter
  to attach themselves. These files can all be included with a glob
  in the asset bundle definition.

- Use the glob syntax to include all the directives in the asset
  bundle definition.

- Rename the controller modules in the auth bundle with a '-controller'
  suffix. These can be similarly globbed in the bundle definition.

- Make auth/auth.coffee a module definition file so that the
  rest of the component can use the 1-arity ``angular.module`` getter
  to attach themselves. These files can all be included with globs
  in the asset bundle definition.

- Ensure that all controllers are named in the ``FooController`` style.
Merge pull request #1540 from hypothesis/frontend-module-reorg

Frontend module reorg
Isolate XSRF Token handling to session service
Correct userids handling in session auth idp
Be defensively promise-y on idp adapter invocation
Tighten up the identity and auth interaction

Handle errors, ready notification, cancellations and cleanups.
Test the events emitted by the auth controller
Move session service back to h module

This is in preparation for using the so-called "Goldilocks API" of
Persona where we manage the session ourselves.
Switch to BrowserID "Goldilocks" API

Rather than support the fiddly matrix of possiblities when a user
may not have a session with the application but has a session with
the identity provider, borrow the newer "Goldilocks" API design from
upstream where the application is responsible for its own session
and the BrowserId implementation is less stateful.
Resolve the Store config before the AppController
Improve comments for ``identityProvider``
Handle sign out failure
PEP8
Fix schema constructor calls in local auth