add test to repro #84
Move channel field mutex from reentrant 'send'

IO errors from send can call shutdown on the connection
which calls shutdown on the channel which tries to claim a lock that is
held by the Publish that initiated the send.

The field mutex `m` doesn't need to lock any access before the send,
only the publish counter and publisher confirm heap so only include
those fields in the critical section.

Thanks @alexzorin
Increase the deadlock timeout for travis.
Merge remote-tracking branch 'remotes/origin/84_publish_deadlock'