Add WSGI environment to context

The environment dictionary contains an unspecified set of variables
that contain information about the authentication and authorization
processes.  Not all of the values are known ahead of time.  The
two values for Kerberos (REMOTE_USER, AUTH_TYPE) are a subset.

Instead of making the WSGI layer know about a growing superset of
authentication attributes, the context contains a link to the wsgi
environment.  The environment is removed from the request dictionary
to prevent circular references and potential GC issues.

Fixed tests  to set environment in the context.  While this
changed many tests, the alternative was to make the check
for the environment optional in the controllers.  This is not a
realistic way to test.  If context['environment'] it missing, a test
will trigger a key_error.

Closes-Bug: #1241812

Change-Id: I234677547204e9ddc0ab33db3e6aa8b7d959a01a
Merge "Add WSGI environment to context"