Allow passing an existing user_creds_id to parser.Stack

Currently we always create a new user_creds entry every time a stack
is stored, even if a user_creds_id is passed to the constructor.  So
allow an existing user_creds ID to be respected.

This will enable optimisation of the creation of trusts, e.g so we won't
have to create a new trust for every nested stack, we can pass the top
level credentials into the nested stack instead, which means updates which
create nested stacks with a trust-scoped-token will work.

This will be required for updates via trusts from Solum, and probably
also to make OS::Heat::AutoScalingGroup work with the trust-alarm-urls
blueprint, where ceilometer will send a signal using a trust.

Change-Id: I7f78a2202514f13deb60ad7d66b9145447cc5625
Partial-Bug: #1317293
blueprint: trust-alarm-urls
Unit tests: Always use ResourceDefinition for updates

Change-Id: I85ab9d0a3ed824020c7a38f7a814e7755a437b1a
Unit tests: always use ResourceDefinition for handle_update()

Change-Id: Ib243d6d1f4ff41c83fddcd0a3741cc28ff954448
Unit tests: Name resources the same as in template

We were creating a bunch of resources with a different name from their
definition in the template. This makes the data consistent.

Change-Id: Ibfaaea5077a4a97dc45b84d4d25bbba6a78425bf
Use ResourceDefinition to generate Properties

Change-Id: I30e9b38f79bbcf5532ca35724ef4af8131c06c3c
Unit tests: use ResourceDefinition to test facades

Change-Id: Ied4b3df4e15d165100eb5b059ac605879c6b9b5e
Merge "Allow passing an existing user_creds_id to parser.Stack"
Merge "Unit tests: Always use ResourceDefinition for updates"
Merge "Unit tests: always use ResourceDefinition for handle_update()"
Merge "Unit tests: Name resources the same as in template"
Merge "Use ResourceDefinition to generate Properties"
Merge "Unit tests: use ResourceDefinition to test facades"