Fix heartbeats, allow :heartbeat => 0 to disable heartbeats again

Previously with the value of 0 we used the RabbitMQ heartbeat value.
With 3.0, it is 600 seconds. That is a fine default, however, historically
amqp gem and Bunny used the value of 0 to disable heartbeats. This commit
makes that possible again. In addition, to keep the (very reasonable)
broker default in place, we change default heartbeat value to 600, which
means w/o :heartbeat option specified, heartbeats will be used. This
helps with firewalls closing idle connections and similar matters.

On the heartbeat sender implementation side, we should send heartbeat
frames roughly at 1/2 the heartbeat interval, not the full interval,
to avoid connection closure.
Change log update

[ci skip]
Correctly register consumers in the lower-level API
Now working on 0.9.0.pre5
Update change log
Bump version in the README
Merge branch 'master' into network_failure_detection
Whitespace
Several new examples for documentation guides
A few more examples for documentation guides
ws
More examples for documentation guides
More documentation examples
Add specs for Sender-selected Distribution and DLX
DLX code example
More work on examples for documentation guides
Make sure that when exchanges and queues are deleted they are removed from Channel hashes @exchanges and @queues
Merge pull request #80 from celldee/queue_redeclare

Fix problem when queue is not created after being deleted and redeclared
Global prefetch is not implemented in RabbitMQ so remove Bunny::Session#prefetch method
Merge pull request #81 from celldee/global_prefetch

Global prefetch is not implemented in RabbitMQ