Errors instead of panics on closed delivery chan

When receiving from a closed delivery chan, a zero value Delivery could
be returned.  Calling Delivery.Ack() would panic without a clear reason
why.  Instead of panicing return an err indicating that the Delivery is
not initialized.

When ranging over the delivery chan, this error would never be returned.