Support lookup of value using "group.key"

Let us check if the opt_name has a '.', if it does then split it
into a group/key and try lookup using that combination. Since
LazyPluggable uses "CONF[self.__pivot]" if we just add this
capability to cfg, we get "LazyPluggable doesn't support
option groups" for free.

Fixes LP #1093043

Change-Id: I9cedcf22014038e9fe4ed5e66ca5427aa99b5091
Fix publish_errors unit test

The unit test for publish_errors=True causes logging to be spewed from
other tests because it configures the default root logger rather than
creating its own logger like other logging tests do. This makes the unit
tests completely silent again.

Also, it hooked into the rpc notifier to catch notifications when it can
simple hook into the no-op notifier like other tests.

Finally, it used stubout to override the value of config options rather
than the BaseTestCase.config() helper method.

Change-Id: I13313fcd9ad8f9e5bcb9af90652b5dde5c3feec9
JSONDictSerializer encode objects to unicode

Averts raising ValueError, Circular Reference Detected exception.
Add additional test to JSONDictSerializerTest testing that
JSONDictSerializer correctly serializes objects into unicode repr.
and not raise error
Fixes: bug #1089100

Change-Id: Ifdb0562c7c43ab66617dddb65f16f893df2f4895
Use package for writing versioninfo.

This currently fails for client projects as python_package
is the name of the project, while package is where versioninfo
is written to. This doesn't affect server openstack projects
because python_package == package.

This hasn't affected any client projects yet because most likely
none of them call version.canonical_version_string() in their
setup.py

Change-Id: Ia97e5fae378c47909f3dbc842dc83e408af68671
Merge "Support lookup of value using "group.key""
Add zmq receiver binary

The impl_zmq rpc driver requires a
binary running on all hosts. Previously
residing in nova, this binary is being
moved into oslo-incubator.

Change-Id: I3f38374b71794029550147ed4fc75f0fd63adf75
rpc method arguments should be dict, not list

default arguments were being set to a
list instead of a dict. This caused
problems if the args key was missing
in the msg argument to the call/cast methods.

Adds tests to check if RPC cast/call work
without arguments. Changes and documents
the _test_cast method arguments, allowing
for more flexibility and code reuse.

fixes bug 1089750

Change-Id: I854dc3fcad8936695feb4414f3862672cf98c5d1
Merge "rpc method arguments should be dict, not list"
Merge "JSONDictSerializer encode objects to unicode"
Merge "Fix publish_errors unit test"
Merge "Use package for writing versioninfo."
Merge "Add zmq receiver binary"
Revert "Support lookup of value using "group.key""

This reverts commit 525ac47.

There are already two ways to reference an option in a group:

  CONF.group.key
  CONF[group].key

Adding a third variant doesn't seem ideal. Also, for the specific case
of LazyPluggable in Nova, we can easily just pass an optional config
group name to the constructor.

Change-Id: I1a29a18d90e8af3ce2563bd1b3eeb64422140016