Bytes only join with bytes.
A ton more `from __future__ import unicode_literals`

while not necessarily fixing all the brokenness that resulted...
Fixing some bytes/unicode stuff specific to digest auth

plus some related junk.  Le sigh.