Improved {% include %} implementation

Merged BaseIncludeNode, ConstantIncludeNode and Include node.

This avoids raising TemplateDoesNotExist at parsing time, allows recursion
when passing a literal template name, and should make TEMPLATE_DEBUG behavior
consistant.

Thanks loic84 for help with the tests.

Fixed #3544, fixed #12064, fixed #16147
Set 'bidi' Urdu property to True

Refs #20454.
Fixed #20989 -- Removed useless explicit list comprehensions.
Fixed #21005 -- Made schema tests language-independent

Thanks Simon Charette for the review.
Fixed #20999 - Allow overriding formfield class with choices, without subclass restrictions.

Refs #18162. Thanks claudep and mjtamlyn for review.
Fixed typo in docs/ref/models/options.txt
Fixed copy/paste error in measurement docs
Made the doc about translating string literals in templates more prominent.
Fixed #13182 -- Prevented trailing spaces in indented json output

Thanks Stéphane Raimbault for the report and the initial patch.
Properly skipped yaml tests when not installed
Made django.test.testcases not depend on staticfiles contrib app.

Do this by introducing a django.contrib.staticfiles.testing.StaticLiveServerCase
unittest TestCase subclass.

Fixes #20739.
Updated Selenium-based tests after e909ceae9b.
Fixed #17074 -- Improved first field detection in admin add form

Thanks Kidwind for the report and Julien Phalip for the initial
patch.
Fixed #21008 -- Made MigrationWriter handle Promise objects.
Remove usage of deprecated module_name model option introduced in 1c0c879be3.
Change test added in 3e34005b1b to be more stable.

It could fail when actual serialization JSON field ordering was
different from the hard-coded one. Refs #13182.
Converted tests for admin first form widget auto-focus to Selenium.

Refs #1707 and 1c0c879be3.
Updated the bundled version of six to 1.4.0.
Replaced "not PY3" by "PY2", new in six 1.4.0.
Used six.moves.zip_longest, new in six 1.4.0.