Save data read in transport before raising exception.

If the exception raised is due to a timeout, we might read from the transport
again. In the old code, the data was discarded, causing loss of
synchronization. This ensures the data we see is preserved for next time.

Conflicts:
	amqp/transport.py
Updates Changelog and bumps version to 1.3.3
Adds bitdeli
Adds promise.calls
Closes #27

SSL socket timeout can return errno.ENOENT
Remove duplicated tests cases
Allow 'None' type in tables and arrays
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 'dfa/master'
Adds Dominik Fässler to AUTHORS
Merge branch 'aguinet/master'
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.
Remove additional Py2.5 compatibility checks
Funtests passing
flakes
Bumps version to 1.4.0 and updates Changelog