Full support of multiple hosts in transport url

This patch add the support of multiple hosts in transport url for rabbit and
qpid drivers. And also fix the amqp connection pool management to allow
to have one pool by transport.

Implements blueprint multiple-hosts-support-in-url

Co-Authored-By: Ala Rezmerita <ala.rezmerita@cloudwatt.com>
Change-Id: I5aff24d292b67a7b65e33e7083e245efbbe82024
Fix passing envelope variable as timeout

The envelope variable is being passed positionally in the timeout spot.

Change-Id: I64defdb0a9544d8c2ae69b38f723937b324ae504
Merge "Fix passing envelope variable as timeout"
Merge "Full support of multiple hosts in transport url"
Add profiling support in oslo.messaging

Oslo messaging is used for all rpc calls between services of each
OpenStack project.

To be able to bind traces from different services of one project,
we should be able to sync state of profiler in 2 serivce.

Sync of profiler in services is done in quite simple maner:
1) If profiler in publisher service has inited profiler it adds trace info
to rpc message.
2) If reciever service gets in rpc message trace info it init profiler.

As well this patch contains new module oslo.messaging.profiler that has
generic function set_notifier that allows us to setup profiler in all
projects of OpenStack that are using oslo.messaging.