xenapi: refactor: move UpdateGlanceImage to common

During the review of https://review.openstack.org/41651 it was
recommended to move UpdateGlanceImage to a common library. A bug was
filed to deal with the refactors. This change fixes the first part.

Fixes bug 1220596

Change-Id: I95ae89525b7e6768c5a70364945d5a10cb906d88
Make field object support transitional call-based interface

This makes the Field object able to be called like a function, which
emulates the old interface that objects are expecting. When all the
existing objects are converted to fields, we can fix the rest of
the infrastructure and remove this transition helper.

Related to blueprint structured-object-fields

Change-Id: I605a1e22d443137d850d4aa262a8bf8b93feabd7
Migrate Aggregate object to Fields

Related to blueprint structured-object-fields

Change-Id: I0d1fab1e05ee748b4c8e7ec15e91aaff5eac1fda
Migrate KeyPair object to Fields

Related to blueprint structured-object-fields

Change-Id: Ic1e4116a1ad4efb4b19d7501f7804acecbb02cb9
Merge "xenapi: refactor: move UpdateGlanceImage to common"
Merge "Make field object support transitional call-based interface"
Merge "Migrate Aggregate object to Fields"
Merge "Migrate KeyPair object to Fields"
XenAPI: Fix translation of metadetails in aggregates

https://review.openstack.org/#/c/43157/ added a translation from the sqlalchemy model to
the instance object replacing metadetails with metadata.

This added more traces in general for XenAPI (when we queried whether we were using
aggregates) and actually broke the host aggregate functionality

Change-Id: I87195753931945b6e1ecf75bc81575a6fa03068e
Closes-bug: 1232179
xenapi: post install scriptlet to rpm

A freshly installed XenServer requires some modifications in order to be
able to run OpenStack. Nova contains an rpm specification to create a
package with the dom0 plugins, however installing the rpm is not enough.
Some more actions need to be taken:
 - create /images, link to a directory within the local SR
 - setup an ssh keypair, and authenticate it with the host
This change adds a post script to the nova plugins rpm spec file, so
by installing the rpm on a XenServer, it is ready to run OpenStack, no
further manual actions needed.

Change-Id: Id57e3a3ab2782550468c6aa4c01059ceb7cc81ab