Introduce a new parallel (multi-server) call API
Refactor: tag replies safely and avoid using erlang:demonitor/2

For efficiency reasons, instead of demonitoring (which leads to scanning the
entire mailbox), cope with duplicate monitor refs when collating gen_server
replies.

For safety, tag the exit signal (which we treat as a result) with a unique
reference instead of the middle-man's pid.
Handle varying destinations in mcall/1
Add a note to the gs2 essay
Use gs2:mcall/1 in r_amqqueue:force_event_refresh/1
Fix multi-call tests
Remove rabbit_misc:multi_call/2
Cosmetic (ish)
Return the correct exit reason for unknown global registered names
move mcall docs to correct place, and improve them
refactor: lift do_mcall casing to head
refactor: simplify
Unify the test cases and cover all bases
Rework mcall tests

Perform registration in the test process to avoid races.
When we expect a process to be dead (before mcall), ensure it is.
Ensure the last surviving test process is killed on completion.
proper cleanup
this should ensure that all process registrations etc have disappeared
by the time we return from the function.
Refactor the tests just a little bit more

Extract a helper to wait for process exits we're expecting. We ignore the
potential race (when establishing the monitor) since the exit reason is
irrelevant here, we just want to know the process is gone.

Instead of hitting 'nonode@nohost', which is slow (perhaps due to DNS
querying), we pull the current hostname and combine 'nonode' with that.
Don't reinvent the wheel
improve docs
merge bug25980 into default