1. Remove existing message return mechanism (Basic.Return command, 'mandatory' field of Basic.Publish, 'cluster-id' property of basic content)
2. Add 'reject-exchange' (short string) to Exchange.Declare and Queue.Declare (messages that are rejected are passed to this exchange)
Predefined simple behaviour
1. Add reject_key property to basic content class (short string)
2. Create new exchange type 'reject' with same semantics as direct, except that it matches on reject_key instead of routing_key
3. Provide predefined instance of 'reject' exchange type named 'amq.reject'