This PR addresses the remaining failing tests from (https://openedx.atlassian.net/browse/INCR-103). I've tested them on Python 3.6 and Python 2.7 and all tests are passing apart from the single skipped test, which was being skipped when I pulled master.
I don't have a lot of experience with maintaining compatibility between Python 2 and Python 3, so please let me know if there's anything I should have done differently. Most of the changes ended up being fairly straightforward, but I did want to call out the changes in `test_views.py` related to `webob.Response` – it looks like `webob` 1.7 introduced some backwards-incompatible changes for JSON responses, you can read more about it [here](https://docs.pylonsproject.org/projects/webob/en/1.7-branch/whatsnew-1.7.html#backwards-incompatibility). Just in case that's useful to someone else in the future.