Add top-level convenience aliases

This means you can do e.g.

  from openstack.common import messaging

  target = messaging.Target(...)

  transport = messaging.get_transport(...)

  class Client(messaging.RPCClient):
     ...

rather than e.g.

  from openstack.common.messaging.rpc import client
  from openstack.common.messaging import target
  from openstack.common.messaging import transport

  target = target.Target(...)

  transport = transport.get_transport(...)

  class Client(client.RPCClient):
     ...

Change-Id: I8caba590bc7b779b539ef856fa319be2a8521303
Make drivers list public again

Make the list of drivers public via the o.c.m.drivers module.

Change-Id: I195075daabbed87e11f7babbdc60ae76c7d69c9a
Make poll() just return the message

The driver shouldn't be pulling the namespace and version from the
message since that's RPC specific stuff.

Also, it's not terribly useful for the driver to pass back a target
object describing the exchange and topic the message was received on
since that's implicit in the listener.

Change-Id: I08fe27ff84d606a44da331d5bfe26d64a15a983c
It's _executors not _executor

Change-Id: I2820b3cb5ca2b362584a0c59463e963baed6264e
Add forgotten piece of eventlet executor

Change-Id: Ic2f2393ae67079d8d0cd506fe7dcdafad97923e5
Fix default_exchange typo

Change-Id: I29f0b965900bbc5308293ab43165f610347b577c
Missing self parameter to server start()

Change-Id: I95de6f8e7c8953dbade7ab86ee74cfc54c0db51a
Fix 'Blockinging' typos

Change-Id: Ic72a1a6c9e9b38b14a73d57c8a4605389341d723
Fix rpc client buglets

Change-Id: I8a76cf3ac5c0f70d1b75f22126c1fd2b81c79258
Fix target/namespace target buglet

Change-Id: I14d01c952c5cc9b12568a70eb79c6863fa606427
Fix buglet with default timeout

Change-Id: If66d665c0180629f22577046eb332a169c19fb66
Add some exceptions

Change-Id: I4b474ed96780a8d96c8bef00955a4ab883b09ccb
Adding reply infrastructure

This is pretty rough.

Change-Id: I5698effa0246487b92f94ad52e53fadffd1ec548
Implement a fake driver

A bunch of FIXMEs in here, but it seems like a good start.

Note that this differs from the original fake driver. Rather than the
driver consuming each message in a greenthread, we leave it up to the
choice of executor to determine how the consumer is run in parallel to
the client and we use thread-safe queues to pass the messages and
replies back and forth. The main reason for this is that we don't want
the driver explicitly depending on eventlet.

Change-Id: Id52e12be93c95b779695f62411f02f43d8480e4e
Add some test code

Right so ... it seems this stuff basically works!

Change-Id: I3c575ae9364e280e7523bc3856e5d6f1948826ad