Common stack_user_project_id across nested stacks

Currently the stack_user_project_id creation is deferred until
a resource actually needs to create a user in it. This means
for stacks with nested stacks there is a mixture of
stack_user_project_id values across the stacks (including None).

This causes issues when deployment resources are in one nested
stack and server resources are in another since deployments
are filtered by matching stack_user_project_id.

This change creates and assigns stack_user_project_id during
stack creation, and propagates this stack_user_project_id to
any nested stacks so that all stacks in the tree share a single
stack_user_project_id.

Closes-Bug: #1343163
Related-Blueprint: deployment-multiple-servers
Change-Id: Ia161ec9989fe0e0792967d9e1e20361e67f46fe1
Merge "Common stack_user_project_id across nested stacks"