Use a separate mutex for channel.* continuations

Using a separate mutex does not break correctness but
ensures we don't step over a non-reentrant Ruby mutex.

By the time we register a channel, we already have a
unique channel id allocated but haven't yet sent anything
to RabbitMQ so won't have any activity on that channel
from the network loop thread.

References #134.