Added some directories on Jenkins to flake8 exclude.
Fixed #23844 -- Used topological sort for migration operation dependency resolution.

This removes the concept of equality between operations to guarantee
compatilibity with Python 3.

Python 3 requires equality to result in identical object hashes. It's
impossible to implement a unique hash that preserves equality as
operations such as field creation depend on being able to accept
arbitrary dicts that cannot be hashed reliably.

Thanks Klaas van Schelven for the original patch in
13d613f80011852404198dfafd1f09c0c0ea42e6.
Fixed #23605 -- Fixed nested subquery regression

Added relabeled_clone() method to sql.Query to fix the problem. It
manifested itself in rare cases where at least double nested subquery's
filter condition might target non-existing alias.

Thanks to Trac alias ris for reporting the problem.
Added test for ValidationError.messages
Reduced reduce() usage; refs #23796.

django.core.exceptions.ValidationError.messages() and
django.db.backends.schema.BaseDatabaseSchemaEditor._alter_field():
Replaced reduce(operator.add, ...) w/uncoupled, explicit sum()
Removed reduce() usage in makemigrations; refs #23796.

A lambda all_items_equal() replaced a reduce() that was broken for potential
3+-way merges. A reduce(operator.eq, ...) accumulates bools and can't
generically check equality of all items in a sequence:

>>> bool(reduce(operator.eq, [('migrations', '0001_initial')] * 3))
False

The code now counts the number of common ancestors to calculate slice offsets
for the branches. Each branch shares the same number of common ancestors.

The common_ancestor for loop statement had incomplete branch coverage.
Fixed duplicate index error on Oracle; refs #23859.

Refers to regression introduced in 7b4a994599b75a07cb07d1e0cc26b3bbf25ab7a6
Added a comment for test of refs #20278.
Fixed #23883 -- Stopped flatatt modifying its argument
Corrected Permission.max_length in docs; refs #8162.
Added a test for model pre/post_init signals.
Fixed #23794 -- Fixed migrations crash when removing a field that's part of index/unique_together.
Fixed #23863 -- Made runtests accept the keepdb option.

refs #20550
Fixed typo in docs/internals/release-process.txt.
Fixed #23865 -- documented how to assign errors to a field in Model.clean()

Also added a unit test wit the simpler syntax which we have documented,
where the dictionary values are strings.
Fixed #21753 -- Raised exception when both `form_class` and `fields` are specified.
Fixed #23778 -- Added a doc section on using the Django runner for reusable apps.
Fixed typo in forms/models.py comment.
Fixed #23862 -- Made ManyToManyRel.get_related_field() respect to_field.
Fixed #23889 -- Added more usage of quote_name_unless_alias() to avoid deprecation warnings.