heat_keystoneclient ensure admin client respects SSL options

The SSL related fixes merged under blueprint clients-ssl-options
and bug #1213122 missed the transient client created by
create_trust_context, so add the required options to
service_admin_creds, such that any client created using the
service admin credentials will use SSL if configured to do so.

Change-Id: Iab25c5ee6ec5cba9aaaccb93ce4e680e2f9cd9ac
Related-Bug: #1213122
heat_keystoneclient: Move v3 path logic to constructor

Work out the v3 path in the constructor and set it as a variable
as it is needed in more than one place so it's better to just
do this once.

Change-Id: I6f8e887c0eeacd3b2e78a71e36fcd93850a144c2
heat_keystoneclient: abstract admin_client to a property

To make the connection to keystone with admin credentials reusable
store the admin client object at the class level rather than local
to create_trust_context.  This will avoid the overhead of
getting two authenticated clients when other admin operations are
necessary.

Change-Id: Iaa043b829778f71d03e64a78ccb3f51eadfb3fba
blueprint: instance-users
Merge "heat_keystoneclient ensure admin client respects SSL options"
Merge "heat_keystoneclient: Move v3 path logic to constructor"
Merge "heat_keystoneclient: abstract admin_client to a property"
Add force_resource_mapping option

This option can be used to indicate whether a resource should be
forcefully added to the registry mapping.  This allows doc
generation to load and gather information about resources even
if runtime dependencies are not met.

Partial-Bug: #1271226
Change-Id: I2b4c2cd35fd89a7bd0b285f3e35affa8a19a9431
Restructure Rackspace resources

During doc generation, resources have their own templates and need
to be separate from non-resource modules.  This removes the ``plugins``
folder and moves all resources into a ``resources`` folder, effectively
separating the custom Rackspace Client from custom Rackspace resources.

Partial-Bug: #1271226
Change-Id: Idbdc8400d30e2e745a2dc1b2d2fa1b7cff50d57b
Allow force registration of Rackspace resources

This makes use of the force_resource_mapping options to allow Rackspace
resources to be registered even if dependencies are not met (e.g. pyrax)
and allow their documentation to be generated in any environment.

Partial-Bug: #1271226
Change-Id: I3a7467e87f7ff81badd51f121ecea98f2924e506
Reorganize docker-plugin for consistency

Package and Module names shouldn't have dashes in them, since it makes
it harder to import them (i.e. one cannot use ``import dashed-module``).

Also, moving docker resource to under heat/engine/resources for
consistency.

Partial-Bug: #1271226
Change-Id: I785b626a99516ebe6444296cf62a78dd96355060
Allow force registration of docker resource

This makes use of the force_resource_mapping option to allow
DockerInc::Docker::Container to be registered even if dependencies are
not met (e.g. docker-py) and allow their documentation to be generated
in any environment.

Partial-Bug: #1271226
Change-Id: I3d785d92f1d30a3caf4cb0f7721c66c9dda294c3
Change Docker resource mapping name

Removing the OS:: prefix since this is not a OpenStack-provided resource

Partial-Bug: #1271226
Change-Id: I5691a08df3700f896ca1fe6efec4487d44617d6d
Generate docs for contrib plugins

Extend write_autodoc_index to take the contrib plugins into account.
Take advantage of the force_resource_mapping option to ensure docs are
written for all contrib plugins, regardless of whether or not
dependencies are met.

Partial-Bug: #1271226
Change-Id: If93dcae52bc573e2673d7fd76a0db62d5fc68115
Rename rackspace.rst to contrib.rst

Partial-Bug: #1271226
Change-Id: I1b5f848ef7f8da645ea57a0a30e7f9b86a4c866b
Add Docker resources to docs

Change-Id: I912fbc8624d93f16e05cb00f886eed6142dd0793
Partial-Bug: #1271226
Add Rackspace resources summary to docs

Add information regarding general use case, dependencies, and README
info for Rackspace resources in the contrib docs.

Closes-Bug: #1271226
Change-Id: I3a57cd5f1e72663bd283d96c07949ff6de23df3a
Rename Marconi plugin package

Package and Module names shouldn't have dashes in them, since it
makes it harder to import them (i.e. one cannot use ``import
dashed-module``).

Partial-Bug: #1271226
Change-Id: I2d3674753bd3fcef284c94911cff3cf9fa22d316