Remove the amqp_rpc_single_reply_queue option from Havana

blueprint amqp-rpc-fast-reply-queue

As part of the Grizzly code review for the above blueprint (Idb09a714), the Grizzly
code base is "aware" of this feature in terms of receiving RPCs and provided with
an option for enabling it on the RPC send side. It was decided that in Havana
the option would be removed, RPCs would only be sent using the new functionality
yet awareness of prior functionality be retained for the receiving of RPCs.
This code change implements the Havana piece.

Change-Id: I5f2a8e432cf84a637c1aa813656c1cbc8db6e7eb
zmq: remove someone unused code from ZmqClient

The socket_type and bind constructor args are never used.

We always supply a value for the envelope argument.

Change-Id: Ide2e11170a3415ef347f85bfcce759cdd55d1225
Add slugify to strutils

This function will be used in apiclient library.

Change-Id: I19f976eda896e7bede07510aafebe4931e512351
Remove explicit distribute depend.

Causes issues with the recent re-merge with setuptools. Advice from
upstream is to stop doing explicit depends.

Change-Id: Ic98d17bf6e5576590c3fcbd7957da0bef28b9851
Add can_send_version() to RpcProxy.

Add a helper method to the RpcProxy class.  This is a little nicer to
use for checking to see if a given message is copmatible with the set
version cap.

Change-Id: Ic44d76f4181351dff367f2d1181a3d508a11db78
Merge "Remove explicit distribute depend."
Merge "Add can_send_version() to RpcProxy."
Merge "zmq: remove someone unused code from ZmqClient"
Merge "Remove the amqp_rpc_single_reply_queue option from Havana"
Allow exceptions to hop up cells

When an exception happens in an RPC call using nova cells, it can travel
back up several RPC boundaries. eg, child-cell=>parent-cell=>nova-api

Before this patch if an exception (eg. AggregateNotFound) was raised in
the bottom layer, the next layer up would turn it into a special
exception ( AggregateNotFound_Remote ), then in the final layer, it would
see this as an unrecognizable exception and raise RemoteException.

After this patch, at each layer where the expeption is deserialized,
it'll recognize exceptions with the _Remote postfix, and leave them as
they are, instead of turning them into RemoteExceptions.

It also preserves the exception's original __module__ now.

Change-Id: I158a80f1cec20d3e1805b565ffddaffd7a15295b
Merge "Add slugify to strutils"
Merge "Allow exceptions to hop up cells"