Python 3 compatibility

We used six for compatibility and removed all the decoding/encoding stuff as well as tests for it. It made compatibility a whole lot harder first and foremost but it also doesn't add anything to the modern web. If we assume unicode with utf-8 (an assumption that Python 3 makes anyway) then we don't even need the different encodings. All in all, we think it's reasonable to assume that we feed unicode to this module at all times instead of dealing with it on a one-to-one basis.
Of course we want to comply with PEP-8, and we do. 

To the best of my knowledge, this point is fine as far as PEP-8 is concerned. Unless you can refer me to a point that says it isn't?

We have to bear in mind that every developer and every development team will have conventions that build on top of PEP-8. And that doesn't mean that they're not complying with PEP-8. It's impossible for a document like PEP-8 to cover 100% of all code styles, so additional conventions are needed to fill the blanks.