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.
simplify
merge bug25937 into bug25948
and largely rewrite it in the process
simpler and more efficient
merge default into bug25948
Merge bug25948