Using the same executable when running python child processes

to avoid version inconsistency weirdness.
Using the currently-available bytes repr

rather than the python 2 version.
Working more toward best spots for binary/unicode
Binary/unicode detangling with header parsing
Replacing `execfile` call with a custom func that wraps `exec`
Moving `safe_getcwd` out of local town

since it isn't using anything specific to that scope (anymore?) and was
causing funky behavior when trying to replace `exec` with `execfile`.
I'm still going to leave `execute_configuration`, though, since
`configure` is pretty honking big.
Using unicode literals instead

so that types are the same in both 2 and 3.
Yet more bytes/unicode fun, this time with request line and headers
Adding compatibility funcs for new urllib unquoting behavior

as the Python 3 versions do a unicode replace by default.
These should have been unicode, apparently
Fixing test for IDNA encoding explosions