Implement swift client plugin

This moves the client creation code out of Clients._swift() into
its own client plugin.

Importing swiftclient exceptions from the plugin is an interim
solution until the client plugin mechanism provides a way of
handling client-specific extensions.

Swift is a core project, and python-swiftclient is a dependency,
so the import is now mandatory.

Change-Id: Ib2cff83096639855eaa1e05febbb4b490edd6250
Remove unused 'VERSIONS' definition

After making template formats pluggable in patch
5709e08f33406cdd40b0b4e6fbd7fd2b8008976e, the 'VERSIONS' is
unused in /hot/template.py, we should remove it.

Change-Id: Icfdc0ccd7159bd521d9fa1f5e62a8a757e12bbe7
Fix several misspells

Change-Id: I5bdac6ace595eb1ad67e8c3ab8ee34cd986ff167
Don't overwrite deployments metadata in Server resource

Currently, when metadata_update is called and local metadata has been
added for software deployments (e.g stuff not defined in the template)
we will silently discard the non-template-defined stuff when calling
metadata_update.

Arguably we are abusing the metadata section by pushing arbitrary additional
data into it but since that issue has already happened, as part of the
SoftwareDeployments implementation, the simplest fix seems to be to merge
the current and template re-resolved state of the metadata.

Change-Id: Id68d11b584734fbb828aabaca6cc75aab0f4ee4c
Closes-Bug: #1337772
Fixing a typo

Just a simple fix for a typo in a comment.

Change-Id: Ie5c165b3775601680b28d0e85fee8e4082735ffe
Merge "Implement swift client plugin"
Merge "Fix several misspells"
Merge "Fixing a typo"
Add update_replace_allowed property attribute

Currently resources support only in-place update or (default)
UpdateReplace. In order to support AWS "Updates are not supported"
feature, this new property attribute is added.
It is going to be used for denying an UpdateReplace
behavior of the resource (similar to update_allowed currently).

Change-Id: Ie94241630d9595b58ff6b84bcb94459b0785fc03
Implements: blueprint aws-updates-not-supported
Improve HeatTestBase.patchobject method

Allow it to consume the same arguments as oslotest.mockpatch.PatchObject
it uses internally.

Change-Id: I2b1f9ffc26476a16e8443c9a932f0b20c1b4d40c
Check for update_replace_allowed in rsrc update

This patch adds check during resource update that the updated property
is update_resource_allowed. Otherwise update raises NotSupported error.

Change-Id: I91019cb34adfcbe67d8c802d4ce1ff7702656a7c
Implements: blueprint aws-updates-not-supported