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