Allow user to view outputs of failed stacks

Outputs like 'stderr' are designed for users to debug failed stacks, if
users can not view outputs of failed stacks, they can not get the error
messages.

Change-Id: I1b2b4f0e967695cf3297d93022cecec958e94b24
Closes-Bug: #1333208
Account for status when deleting servers

nova_utils.delete did not account for error state.

Partial-Bug: #1329453
Change-Id: I162a2441c41ae6331d6e150385a5e8aacc56167e
Refactor OS::Nova::Server delete handling

OS::Nova::Server used an internal coroutine to handle_delete instead of
implementing check_delete_complete. While this mostly worked, the coroutine
didn't account for errors in deletion from Nova nor did it use a timeout. This
would lead to infinite execution when servers didn't delete properly. This
patch refactors delete to use the standard handle->check lifecycle methodology
and accounts for error statuses during delete.

Change-Id: I6b13c1201e46c0e73aa11e78825045b345931fb7
Partial-Bug: #1329453
Fix serialization of InvalidSchemaError

Move InvalidSchemaError to heat.common.exception and pass a keyword
argument so that it can be serialized properly.

Change-Id: Iada3273b2b0b129bc0125b68fecf1e0efc081611
Closes-Bug: #1336740
Add query param to allow nested resource list

Add `nested_depth` param to OpenStack API to allow listing of
nested resources up to `nested_depth` level.

Implements: blueprint explode-nested-resources
Change-Id: I1cd6c35fe7f3eb1c5b67217e38aef53cb0b6ff76
Pass user_creds_id into nested stacks

To avoid creating additional user_creds entries for every nested
stack, pass in the parent/owner stack user_creds_id.  This means
updates will work with trust-scoped tokens, and will remove the
overhead of creating a new trust for every nested resource.

This will also avoid the potential situation where a stack has been
updated (adding nested stacks) by a user other than the original
stack owner - if that happened, it would be impossible to delete
the stacks (owner and nested) as any user other than an admin,
due to restrictions on who can delete the trust.

Note the delete logic is modified so nested stacks no longer delete
the user_creds ID.  If we stick with this simple logic, it will
mean it's necessary to either delete all stacks before upgrading
or do a manual DB query to clean up any orphaned user_creds rows
when existing nested stacks are deleted (such a cleanup is probably
already necessary due to the previous patch fixing user_creds
handling for backup stacks)

Also modifies the stub_keystoneclient test call to make stubbing
the client in the parser test easier.

Change-Id: Id1fb89c92af48777b0487015d5048af34b33af76
Closes-Bug: #1342593
Merge "Allow user to view outputs of failed stacks"
Merge "Account for status when deleting servers"
Merge "Refactor OS::Nova::Server delete handling"
Merge "Fix serialization of InvalidSchemaError"
Merge "Pass user_creds_id into nested stacks"
Add resource properties to stack-preview

Certain resource details may influence the final price of the
infrastructure being created by a stack (e.g. instance flavors), so this
adds resources properties to the output of stack-preview.

Implements: blueprint stack-preview-details
Change-Id: I6ea892dedfc96aeda8e8a21e67562820fd21c7bb
Merge "Add query param to allow nested resource list"
Merge "Add resource properties to stack-preview"