Python 3 support

we've run into this in previous pull requests around this code, let's not coerce non-binary types to `utf-8` - the above assertion is sufficient