Fixed encoder and tests for Python 3.3

Decided to take a stab at fixing this for Python 3.3.  Changing the ```unicode``` types to ```str``` was straightforward, but this still leaves the tests failing in 3.3, for two reasons:

1. The response.content is a byte array object, so comparison to the string literal fails.
2. With the byte array decoded, the comparison still fails since a specific order is assumed.  The encoded object is a dict, which doesn't guarantee any order, and indeed the order varies between 2.7 and 3.3.

I chose to decode the JSON and compare the resulting dicts.  This adds complexity to the tests, but seems to me the most robust way of ensuring that the comparison succeeds.