Use amqp_simple_wait_frame_noblock()

Use rabbitmq-c new API amqp_simple_wait_frame_noblock() to read frames
with a timeout. This allows rabbitmq-c to correctly handle heartbeating
if we decide to enable that.
Release memory on a per-channel basis

Use new rabbitmq-c amqp_maybe_release_buffers_on_channel() API to
release memory on a per-channel basis.

Fixes #56
Fixes #30
Set travis-ci to build against rabbitmq-c v0.4.0
Add release notes and prep to release v2.3