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.
rationalise timer maintenance
- introduce a couple of helper functions and use them wherever we can
- pay attention to the result of timer cancellation, to prevent
  duplicate timer creation
- stop all timers when a queue terminates. More out of politeness than
  necessity.
cosmetic rename
implement vq:fold in terms of an iterator
unmodalise vq:read_msg
cosmetic
merge default into bug25397
pass State to iterator
We want to be able to zip this iterator with other iterators that also
manipulate the vqstate. Hence we must pass the State explicitly rather
than keeping it opaque inside the iterator state.

Also, some refactoring on read_msg.
merge bug25397 into bug25395
extract a vq helper fun for constructing a msg_status
merge default into bug25397
return MsgStatus only from iterator
leaving the message reading to the fold
only pass the minimum necessary state to 'next'
i.e. the IndexState. The remainder of the State is encapsulated
inside the iterator state. Technically we only need q{1-4} and delta,
but it's simpler and more obvious to just pass a read-only State
around.
merge default into bug25395
merge bug25397 into bug25395
oops; nuke unused var
cosmetic
merge bug25397 into bug25395