restapi: OpenStack image provider

This patch adds the resources for the OpenStack image providers. The
representation of the resource will look like this:

  GET /openstackimageproviders
  <openstack_image_providers>
    <openstack_image_provider id="{provider:id}">...</openstack_image_provider>
    ...
  </openstack_image_providers>

  GET /openstackimageproviders/{provider:id}
  <openstack_image_provider id="{provider:id}">
    <name>myprovider</name>
    <description>My provider</description>
    <url>http://glance.example.com</url>
    <requires_authentication>true</requires_authentication>
    <username>myuser</username>
    <password>mypass</password>
    <tenant_name>mytenant</tenant_name>
    <properties>
      <property>
        <name>prop1</name>
        <value>value1</myvalue>
      </property>
      <property>
        <name>prop2</name>
        <value>value2</myvalue>
      </property>
    </properties>
  </openstack_image_provider>

The providers collection will support listing, getting, adding, and
removing providers, with the usual methods.

The provider resource will support getting, deleting and updating the
provider, with the usual methods. In addition it will support the
"testconnectivity" and "importcertificates" operations. The first is
used to check the connectivity with the external provider:

  POST /openstackimageproviders/{provider:id}/testconnectivity
  <action/>

The second is used to import the chain of certificates of the external
provider:

  POST /openstackimageproviders/{provider:id}/importcertificates
  <action/>

The third is used to import the image:

  POST /openstackimageproviders/{provider:id}/importcertificates
  <action/>

The provider resource includes subcollections for certificates and
images. For certificates it will look like this:

  GET /openstackimageproviders/{provider:id}/certificates
  <certificates>
    <certificate id="{host:id}">...</certificate>
    ...
  </certificates>

  GET /openstackimageproviders/{provider:id}/certificates/{certificate:id}
  <certificate id="{certificate:id}">
    <subject>CN=glance.example.com</subject>
    <content>...</content>
  </certificate>

For images:

  GET /openstackimageproviders/{provider:id}/images
  <openstack_images>
    <openstack_image id="{image:id}">...</openstack_image>
    ...
  </openstack_images>

  GET /openstackimageproviders/{provider:id}/images/{image:id}
  <openstack_image id="{image:id}">
    <name>myimage</name>
  </openstack_image>

The image resource supports the "import" operation:

  POST /openstackimageproviders/{provider:id}/images/{image:id}/import
  <action>
    <storagedomain>
      <name>mysd</name>
    </storagedomain>
    <cluster>
      <name>mycluster</name>
    </cluster>
    <import_as_template>false</import_as_template>
  </action>

Change-Id: I77fca2208b18d54f9177ec8b0178768a6b815f20
Related-To: https://bugzilla.redhat.com/1132259
Signed-off-by: Juan Hernandez <juan.hernandez@redhat.com>