Standardize mutation hint generation.

Review Request #9534 — Created Jan. 25, 2018 and submitted — Latest diff uploaded

Information

Django Evolution
master
faee82c...

Reviewers

In order to help generate evolution files, mutations can provide hinted
versions of themselves. These are based on changes made to models that
aren't yet in the signature. To do this, each mutation class was
responsible for overriding __str__ and returning a string suitable for
the file, but this led to inconsistencies in how they serialized their
content.

This change standardizes all this. __str__ now calls
generate_hint(), which takes care of the base <MutationName>(...)
string and calls get_hint_params() to determine what parameters to
populate. That allows each mutation class to focus on the state instead
of the final construction of the string.

Unit tests pass.