Turn HotBunnies::Channel into a Ruby class

Submitted for @iconara to take a look.

This is the first step towards hiding RabbitMQ Java client parts that
are unlikely to be useful or even understandable to many
Ruby developers:

 * methods overloaded on both arity and type signatures
 * Java exceptions raised on protocol errors
 * `com.rabbitmq.client.Channel` interface

Because Ruby won't allow us overload methods on arity and/or type signatures,
lower-level methods such as `HB::Channel#queue_declare` only have a single most
commonly used signature and uses the same default argument values as
overloaded versions in the Java channel implementation.

It passes existing HotBunnies test suite without modifications.

Note that this also drops support for the :internal option for exchanges
that's not supposed to be used by app developers.