1100005 - Fixes NoAvailableQueues Issue

https://bugzilla.redhat.com/show_bug.cgi?id=1100005

The code has been updated, but the docs and the unit tests have not.  Those will be updated before this is merged.

This PR does the following things:

* Consolidates all qpid.messaging sessions to a single session that is stored on the Transport object. This significantly reduces the number of sessions being managed.

* Channel.basic_consume() now starts a qpid.messaging receiver, and stores a reference to the new receiver on the Channel. qpid.messaging is smart enough to receive I/O asynchronously after a receiver is started.

* The FDShim and FDShimThread objects have been totally removed. There is no usage of Queue.Queue or Threading in the transport.

* Adds a gratuitous acking behavior so that qpid.messaging does not retain references to messages that will never be acked.

* This sets the prefetch_count to of QoS objects at least 1 at all times. The basic_qos arguments needs some work, and I didn't want to delay the main goal of this fix with that small detail.  prefetch_count is set to 1, which will allow the design to run correctly. A prefetch_count of 0 will never run with this new design.