requeue instead of reject

Requeue the message instead of rejecting it. The AMQP spec
suggests reject()'ing the message to get it back in the queue.
The trick is that there is a parameter "requeue=True" required
to make this happen. Under kombu, this is done as a separate
command instead of a parameter on reject().

Change-Id: I6e820841b87eedb03318124e7d70be8da6970cc2
Raise timeout in fake RPC if no consumers found

If you do a call() with e.g. the kombu driver, and there is no consumer
listening, then you will get a Timeout exception.

However, with the fake driver, we just silently return None in this
case. The oslo.messaging fake driver instead raises a Timeout and this
behaviour change turned up a tonne of issues with Nova's unit tests.

Make this change here too so that we can merge fixes for Nova's tests
before porting to oslo.messaging.

Note that although we also raise a Timeout in the case of cast(), but
cast() then just ignores the exception.

I'd add a test for this, but it appears we don't have any unit tests for
the fake driver.

Change-Id: Id14534ea5aff4ab2a27d31ca6f0ad2f2a8d273c8
Merge "Raise timeout in fake RPC if no consumers found"
Merge "requeue instead of reject"