Fix signal handling for WSGI servers

Previously, sending a SIGHUP to the parent process would close the
shared socket used with all the WSGI servers (problematic when multiple
workers are present). Also, exiting the wait loop in the parent would
cause the children to be orphaned. Instead, make the parent process
restart all the children servers upon receipt of SIGHUP. This behavior
seems to make sense given that sending SIGHUP to a child restarts and
creates a new server (due to the parent handling of the children).

Another fix was to issue a SIGTERM upon Ctrl-C in order to not leave
parentless children. SIGTERM was chosen instead of SIGINT simply to
avoid worker tracebacks on the terminal.

Minor unrelated change: the WSGI server in single worker mode has been
changed to also respect the debug flag, exactly the same as with
multiple workers.

Note: the original bug report was examining lack of signal handling
based on the Oslo service code. However, only the engine makes use of
it.

Change-Id: I8519cc6fedf72b38a8ce0762bb86cd70e58e0dc7
Closes-bug: #1276694
Clarify NotFound error when creating trust

If a user creates a stack without the heat_stack_owner role, we
try to create the trust and then fail somewhat cryptically by
letting the NotFound exception from keystoneclient get exposed to
the user.  This is confusing, as it doesn't even mention the role
name (only the ID).

Instead, we can catch the NotFound and propagate a MissingCredential
error, with a list of the role names we need to create the trust.

This error is already correctly mapped to a bad request in the native
API, but not in the CFN exception map, so add it there to avoid 500
errors if this happens via heat-api-cfn.

Now, if a user lacks the required role, they will see an error like:

Missing required credential: roles ['heat_stack_owner']

Which is hopefully somewhat clearer.

Change-Id: Ief4956bdb76ddf0cdb0a642721b63c63b0d007d8
Closes-Bug: #1306665
Fix file mode, remove executable bit.

Fix file permission mode which was improperly set to 0755.  Also some
minor tweakings to the comments in code.

Change-Id: I6ca2aefeab6710cdc83c3273843cb555065078e9
Fix AWS::EC2::VPC resource delete failure

Check resource_id is not None before deleting the resource.

Change-Id: Ib8e8de5badc54c79cee248a9fcc86ebc50397b00
Closes-bug: #1365924
Allow filtering of stacks by username, tenant and owner_id

Adding username, tenant and owner_id to stacks filtering whitelist.

Change-Id: I7471743adcdbed6d70e1a808bf2430e40fa4075e
Closes-Bug: #1367439
Merge "Fix signal handling for WSGI servers"
Merge "Fix AWS::EC2::VPC resource delete failure"
Merge "Fix file mode, remove executable bit."
Merge "Clarify NotFound error when creating trust"
Merge "Allow filtering of stacks by username, tenant and owner_id"