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.
request_data is output from urlencode(), which can only return return ASCII strings, so I think this in unnecessary because the only contentious value would be the "solution_text", which should be decoded anyway as mentioned above.