Move banner things from stdout to logs. Leave a vestigal banner so that people who have started Rabbit by hand have something to look at.
Oops
I never saw the point of that.
restart branch
emit names instead of pids in queue process' queue events
reference queue by name in consumer events
merge default into bug23625
merge default into bug23625
merge default into bug23625
merge default into bug23625
propagate API change
identify queues by name rather than pid in channel stats
- in deliver_to_queues, take the result of rabbit_amqqueue:lookup and
  use it to a) add entries to a QPid -> QName mapping in the state
  for all master pids, and b) setup monitors for all master pids
- for the stats creation in deliver_to_queues, map the DeliveredQPids
  to the associated QNames, via the mapping in the State. Note that
  this will ignore slave pids, hence we only get one stat per QName
  (which is good). Also, in the event that the master died between
  lookup and delivery (and the delivery was 'mandatory'), we will not
  record any stats at all.
- in monitor_delivering_queue, which is called by basic.{consume,get}
  we add to the mapping
- in ack/2 we use the mapping to obtain QNames from QPids, and use
  that in stats. Since a queue may have vanished prior to the
  ack/reject arriving, we need to handle the case of no entry being
  present in the mapping for the given QPid.
- in record_sent we have the QName anyway, so can just record stats
  against that instead of the QPid.
- in the 'DOWN' handler we use the mapping to determine the QName from
  the pid, and pass that to erase_queue_stats, which can now remove
  entries based on the QName. We then remove the entry from the
  mapping.
optimise
this brings perf roughly on par with default
Added tag rabbitmq_v3_0_0 for changeset b7a660ce4855
optimise "no messages dead-lettered during expiry" case
cosmetic
format mq slave message queue
to facilitate debugging
introduce bq:drop/2 and use it in slaves to prevent msg fetching
- 'drop' is the same as 'fetch' except it doesn't read messages from
  the msg store
- slaves never fetch messages, they only drop them
- technically, mq_master:drop doesn't need to exist, since 'drop' is
  only invoked by the slaves, but we provide an implementation for
  completeness.
remove unused vqstate field
add test of vq:drop