Merge bug25938
Simplfy (although perhaps not as much as we had hoped) by only informing queue decorators when the active consumers may have changed, rather than trying to give them more information about what is happening.
Simplify further, don't use a proplist
Maybe this is clearer?
Even clearer?
consumers/1 returns a list of 4-tuples now.
Uh, that function needs another header
Merge bug25945 again
stable to default
Accept this from federation.
Merge bug25935
make rabbit_queue_consumers:deliver deliver at most one message
...which makes the control flow more obvious
keep State out of one of the FetchFuns
This is cleaner.
better helper
simplify rabbit_queue_consumers:deliver even further
turns out we can ditch another parameter to both that function and the
FetchFun we pass on.

Also reverted state shrinking in attempt_delivery call site. While it
is the right thing in principle, I am not convinced the resulting code
is actually easier to grok.
it turns out that dialyzer dislikes improper lists
...and spits out "Cons will produce an improper list" errors
*sigh*
(re)merge bug25942 into default
grrr, forgot one
(re)merge bug25942 into default
simplify