Add new signature introspection and cloning functions.

Review Request #9603 - Created Feb. 8, 2018 and updated

Christian Hammond
Django Evolution

This change introduces new functions for the new signature classes,
providing helpers for fetching child signatures, defaults and values for
fields, and to clone whole signature trees. These will be used in
upcoming diffing and mutation changes.

There's also some normalization for the unique_together and
index_together fields, ensuring we're working with data in a
consistent way.

Unit tests pass for all Django versions and for Python 2 and 3.

Checks run (2 succeeded)
flake8 passed.
JSHint passed.
David Trowbridge
  1. Ship It!