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
Merge "Allow passing an existing user_creds_id to parser.Stack"