Do nothing if the rabbit application is already running. Similarly, don't explode if the boot marker is there, just do nothing.
Ensure that we always interleave start / stop / start / stop.
Merge bug25897
stable to default
Introduce halt_on_upgrade_failure app env param and set it to true. Only throw an error instead of halting if it has been set to false.
Ooops.
Move determination of flow-ness into the server.
Announce credit flow state for channels and queues.
Merge bug25901
stable to default
Rather than just querying a single remote node, query them all, and accomodate remote nodes that might be running older versions than ourselves, provided we can find someone who is running the same as us.

I did try just limiting Nodes to Nodes with the rabbit process running on them. That seemed to break the tests, and trying to figure out why by looking at rabbit_mnesia made me want to slit my wrists and other body parts. Thus I wrote more code instead.
Merge bug22525
Make sure that our last event before going sorta-idle is not one in which we claim to be in flow control.
merge in default
Merge in bug25912
Explain
Merge bug25912
stable to default
Merge in default (noop)
Undo some changes.