Use absolute imports and fix the version string
Add more exceptions in frame demarshalling

- Make sure that a frame size exists, raise an exception if not
- Make sure there's enough data to demarshal a frame, raise an exception if not
Update to use standard strings in codegen for default values

AMQP spec has no unicode values and this fixes a Python3 incompatibility
Properly account for heartbeat frames when decoding