ERROR_WAIT_TIME should be a config option

As discussed at https://review.openstack.org/#/c/112941/
replace the hard-coded timeout value with a config option.

Change-Id: I49ddf254dfe6460626d90cc75f89e798227dfff6
Closes-Bug: #1385014
Remove die_if_not_set check for var user_roles

Since the later logic will add role if the user role is not
found. "die_if_not_set" check will exit the main script.

Closes-Bug: #1389714

Change-Id: I995cf357d09267fee55e44575e3e301bcffebca3
Add validation constraints on config inputs

This change adds a new property to the StructuredDeployment class to
enable a check on the config inputs. When this property is set to
'STRICT' we compare the inputs to the supplied input_values property and
we raise an exception if the input_values result in any inputs not being
assigned a value.
By default this is disabled.
I did a small refactor of the code adding a couple of extra methods.
Closes-bug: 1334283

Change-Id: If132163bcaf4eee61a9499808ab264e7b7f80cb2
Use RPC directly for software config operations

This change replaces heatclient REST calls with RPC calls when
creating, fetching or deleting software configs.

All resources can now request and RPC client with self.rpc_client()
which will create and memoize an EngineClient instance.

Change-Id: Id23749e672fd4154e3d9986e22b46fc038579d8e
Partial-blueprint: software-config-trigger
Use RPC directly for software deployment operations

This change replaces heatclient REST calls with RPC calls when
creating, fetching or deleting software deployments.

Change-Id: If81b68717bd2f9d9be1291c07b18626493c9b5cc
Partial-blueprint: software-config-trigger
Merge "Add validation constraints on config inputs"
Merge "ERROR_WAIT_TIME should be a config option"
Merge "Use RPC directly for software deployment operations"
Merge "Remove die_if_not_set check for var user_roles"