Fixed to work on DRF 3

All of the code and tests now pass on DRF 3, but three tests fail
on DRF 2 because of incompatible API changes that are difficult to
test independently.

There were many undocumented changes in how the fields API works,
specifically the introduction of `ManyRelatedField` and
`ListSerializer` and how they are automatically used. As a result,
there are multiple new edges that needed to be dealt with, and a
few utility methods were created because of it.

The pagination API was also a newly introduced challenge, as the
pagination serializers do not internally use a `ReturnList`, which
we were expecting.

Only a few tests needed to be altered, but the core checks have
been retained.