Invoke the cancel callback whenever we send a basic.cancel as well as when we receive one. This means the selective consumer will always tidy up its state in handle_cancel/2 and therefore does not need to do so in handle_cancel_ok/3.
Damn, we can't always update our state on basic.cancel or when we receive the cancel-ok we won't know what to do with it!
Minor cleanup and don't conflate two different errors together.
* Test consume / cancel / consume.
* Merge the two receives to get rid of a rather dubious "after 0".
Merged bug25677 into stable