Reworked ErrorDict.as_json() to prevent unnecessary serialization/deserialization step.

Thanks @apollo13 for the suggestion. Refs #17413.
Fixed #22183: Don't make a table for M2Ms with through=
Revert "Fixed #22183: Don't make a table for M2Ms with through="

This reverts commit 1562b9896f8f614ef40fd032b1ec777280b377c1.
Fixed #22204: Bad circular-dep-breaking if more than one per run
Don't allow really long migration names
Fixed #22070 -- Changed verbose_name for apps in django.contrib to use title case

Thanks bendavis78 for the report.