Very big commit. Should've broken into chunks but anyway.
1. Completely revamped functional_tests using Pytest.
2. Tried to use setup and teardown functions but went with fixtures instead. Makes more sense.
3. Marked the actual test as xfail.
4. Changed manage.py's shbang line.