* first attempt at adding get_queryset
* add queryset_resolver to DjangoConnectionField and fix test failures
* cleanup get_queryset API to match proposal as close as possible
* pep8 fix: W293
* document get_queryset usage
* add test for when get_queryset is defined on DjangoObjectType
When we use the `graphql_schema` management command, the output can vary from run to run depending on arbitrary factors (because there is no guarantee made about the order used to output JSON dictionary keys). This makes it difficult to compare two schema's at different points in time.
We address this by including a new `canonical` flag to the command, which uses standard `json.dump` funcitonality to sort dictionary keys and force pretty-printed output.
This fixes what appear to be some code errors/typos:
* The `FormMutation` class was renamed to `DjangoFormMutation`, and `ModelFormMutation` to `DjangoModelFormMutation`, in 40610c64a3.
* `form_valid` was renamed to `perform_mutate` in 463ce68b16.
It also clarifies a few things that I found confusing:
* It explicitly mentions that `perform_mutate` is a class method.
* The code samples now import the form classes from their packages, so readers know where to import them from too.
By the end of the Graphene and Django Tutorial using Relay, one might think they have finished everything needed server side for Relay, but six sections later, in a section that doesn't mention Relay in the title, the final required step for Relay is documented.