Expose an entry point to list all config options

Register a oslo.messaging entry point in the oslo.config.opts namespace
which, when called, returns a list of the configuration options which
may be registered by the library at runtime.

The idea here is that the sample config file generator can query this
and include the returned options in the sample config file of any
applications which use the library.

Some sample code for fetching available options:

  import pkg_resources

  for ep in pkg_resources.iter_entry_points('oslo.config.opts'):
      if ep.name == "oslo.messaging":
          list_opts = ep.load()
          for g, opts in list_opts():
              opts.sort(key=lambda x: x.name)
              print "[%s]" % g
              for o in opts:
                  print "%s = %s" % (o.name, o.default)
              print

Related-Bug: #1241566
Change-Id: Ic28351258652d2ea38974e2f4d1aa6b1d3dd7192
Merge "Expose an entry point to list all config options"