A multipart cloud-init resource based on SoftwareConfig

This simple resource allows a multipart mime message to be built out
of an assembly of other SoftwareConfig resources. These assembled resources
will generally be a mixture of OS::Heat::CloudConfig and
OS::Heat::SoftwareConfig resources.

The full multipart content is fetched and stored during resource create.
This is safe since SoftwareConfig data is immutable once created.

Because cloud-init is boot only, this resource won't be used with
a SoftwareDeployment resource, also it will not have inputs or outputs.

Instead, a server's user_data can contain this resource via get_resource
when user_data_format is SOFTWARE_CONFIG.

Implements: blueprint cloud-init-resource

Change-Id: Id72f6ccb6802d654a1dec31f37fb0bcab0e36843
RPC service for software config/deployment

These RPC service methods are wrappers over the DB API.

Implements: blueprint hot-software-config-rest
Change-Id: I2c2e53f633cca30533b9190ebccc0d6eddcfb21f
Merge "A multipart cloud-init resource based on SoftwareConfig"
Merge "RPC service for software config/deployment"