implement heartbeat response

Signed-off-by: Reed Wade <reedwade@gmail.com>
#26 - cosmetic
#26 - added basic test
RabbitMQ 3.0 dropped 'immediate' support, also set 'mandatory'
Don't set immediate flag at all - Rabbit 3 doesn't like it
Release 0.0.6
Explain pubakcs
#27 - don't try ipv6 if socket.has_ipv6 is False
use amqp:/// as default for AMQP_URL
use a name that does not resolve

'does.not.resolve' resolves for me!
Merge pull request #29 from schmir/small-fixes-to-tests

Small fixes to tests
#29 - minor cleanup
document supported python versions
make on_write handle shutdown connections and an empty buffer

Connection._shutdown sets the sd and send_buf attributes to
None. on_write may be called after _shutdown was called.  We return
early now in on_write if send_buf is None or if it is empty.

see issue #23: https://github.com/majek/puka/issues/23
Merge pull request #31 from schmir/document-required-python-version

document supported python versions
Merge pull request #33 from schmir/fix-on_write-after-shutdown

make on_write handle shutdown connections and an empty buffer
Adapt tests to RabbitMQ 3.0 - immediate is not supported any more
Adapt tests to RabbitMQ 3.0 - expiry property is supported and must be numeric
RabbitMQ 3.0 adaption - just don't support immediate flag at all.
Fix #34 - check if previously handled frame didn't close the connection

that may happen in some rabbitmq versions - it was possible for rmq to answer to basic.consume after sending connection.close-ok. With that check we avoid crash in that situation.