Fix UTF-8 encoding issues (#49)

- Message body length was being assigned to the content header prior to converting the unicode string to bytes
- Add a new rabbitpy.utils.maybe_utf8_encode method for handling strings that may or may not contain UTF-8
- Maybe fix the automatic coersion of header types to UTF-8 encoded bytes

Additional changes:
- Fix an integration test that was not cleaning up its queue after itself
- Raise TypeError if a timestamp property can not be converted properly