Allow for stack users in _authorize_stack_user

This change allows stack user credentials to be used to call
describe_stack_resource (heat resource-metadata)

It makes the following changes:
* _authorize_stack_user first attempts authorize with
  stack.access_allowed using the context user_id before falling back
  to looking for ec2 credentials
* context middleware sets the user_id on the context even when the
  username is not specified

This change also adds missing test coverage to ContextMiddleware

Change-Id: Idb655e403ba11a3144dacf34eba0feb59ab8d911
Closes-Bug: #1299982
Credentials for native heat os-collect-config polling

For Server software_config_transport=POLL_SERVER_HEAT the os-collect-config
configuration has been changed in the following way:
* included stack_id and resource_name
* replaced username with user_id, since domain users should always be
  referenced by ID.
* renamed the collector key from "heat_server_poll" to "heat" since that
  is the intended name for the heat collector in os-collect-config

Closes-Bug: #1299986

Change-Id: I42326c81c7276d7d305a05c00d72a6102e80abca