Revamp heartbeat handling

Be conservative in heartbeat behavior: send at the minimum interval
negotiated by the server and the client, and do not artificially abort a
connection if we do not receive any heartbeats.
use a monotonic clock instead

This transplants the monotonic backport from kombu into this package,
and uses it for heartbeats.
refactor heartbeats to follow rabbitmq-java-client's model
Merge branch 'djmitche/heartbeat'
Adds Dustin J. Mitchell to AUTHORS
Fixes for #30

- Sent back the negotitated heartbeat interval in tune_ok

- Made `server_heartbeat` and `client_heartbeat` attributes of the class
  so that they are not dynamically created.

- Renamed `heartbeat_interval` -> `heartbeat` for backwards compatibility.