Use json_encode/decode wrappers for python3 treats byte and unicode strings differently

References:

 * https://github.com/tornadoweb/tornado/blob/master/tornado/escape.py#L80
 * https://github.com/tornadoweb/tornado/blob/master/tornado/escape.py#L238
Assert the presence of each parameter separately

Instead of all of them in some specific order
Support Tornado 4.0
Add tox to the mix
Let travis build all supported python versions
Add information for the `classifiers´ field