Nova server to ref cloud-config resources in user_data

With this change it is now possible to do boot-time cloud-init configuration
using some combination of OS::Heat::MultipartMime, OS::Heat::CloudConfig or
OS::Heat::SoftwareConfig.

Cloud-init configuration is specified by referencing the resource
in the user_data when user_data_format=RAW:

  server:
    type: OS::Nova::Server
    properties:
      ...
      user_data_format: RAW
      user_data:
        get_resource: server_init

Alternatively, the config can be fetched as a string attribute
from the OS::Heat::SoftwareConfig config attribute:

  server:
    type: OS::Nova::Server
    properties:
      ...
      user_data_format: RAW
      user_data:
        get_attr: [server_init, config]

implements blueprint cloud-init-resource
Change-Id: I72f74d302afd71dac3845282dcc9a1ca83e92149
Merge "Nova server to ref cloud-config resources in user_data"