Rework zmq setup and cleanup

Register config options at import time and remove the register_opts()
function. It seems this isn't being used.

Add accessor methods for ZMQ_CTXT and matchmaker so that they are
lazily created rather than created at import time.

Remove the rpc_zmq_matchmaker override in the tests since
MatchMakerLocalhost is the default anyway. We were setting it with
an incorrect value, but only after the matchmaker had already been
created.

Change-Id: I2520252c64d70e4c4903e34d07952fed43e70ebe
Allow rpc drivers to always be imported

The qpid and zmq drivers current can't be import unless their
respective libraries are installed and neither are currently listed
in test-requires.

This prevents us from being able to use nosetests --with-doctests
because the import failure is seen as a test failure.

Fix this issue by making the import always succeed and deferring
failure until the module's APIs are actually used.

This will also help Nova's sample config file generation since it
will allow the generate-sample tool discover config options for these
drivers even when the messaging libraries aren't installed.

Change-Id: I30087fd33eef41d50d1a374cb5694dc15c43d1da
Make tox run doctests

Use 'nosetests --with-doctests' to run any doctests found. We currently
only use doctests in a handful of places, but we may as well run them
to ensure they work.

Make the cfg doctests avoid using the global CONF since we would need
to reset its state between each doctest.

Fix the cliutils doctests to actually pass.

Use 'nosetests --exclude-dir=tests/testmods' to avoid loading the
modules from this dir while discovering doctests. The cfg unit tests
rely on these modules not having been previously loaded.

Change-Id: I19ad70767fa5c8352b994dc963b5d3a7c9d9eb95
Merge "Rework zmq setup and cleanup"
Merge "Allow rpc drivers to always be imported"
Merge "Make tox run doctests"
Fixes an import order nit

Change-Id: Ic47deb67c5dad123c8937e3468d798eefe045280