Add support for a FORCE_RESOURCE_MAPPING env var

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 ``heat``
``engine`` and ``plugins`` folders 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 under 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
Separate the Marconi client from the resource

Move Marconi client into its own module for consistency.

Change-Id: If240c1ddfc4ef3af3332c280da507d832a8b3246
Restructure Marconi plugin directory structure

Moving the queue resource under resources. This allows for the
separate doc generation between resources and other package modules

Change-Id: Icb402bde8e38114f4144252b93df0cb050d2e5f3
Allow force registration of marconi resource

Change-Id: I36bf7ce9bd1a598ccc85e2f51c8c73b6e0bb7ee8