[1.7.x] Made runtests.py use 'set_installed_apps' API

This will also trigger the ready method of any tested application,
which was not run before.
Backport of 19b4908206 from master.
[1.7.x] Removed translatability of PIL error messages

Note these are no longer in master anyway.
[1.7.x] Applied unicode_literals to makemessages command

This also fixes #22686 as some sort of side-effect.
Backport of dbb48d2bb99 from master.
[1.7.x] Fixed #22510 -- Harden field removal to only None.

Refs #8620.

If we allow any value to remove form fields then we get name clashes
with method names, media classes etc. There was a backwards
incompatibility introduced meaning ModelForm subclasses with declared
fields called media or clean would lose those fields.

Field removal is now only permitted by using the sentinel value None.
The docs have been slightly reworded to refer to removal of fields
rather than shadowing.

Thanks to gcbirzan for the report and initial patch, and several of the
core team for opinions.

Backport of 9fb0f5dddc4cf7f2d294af1bcde2c359cffd90a5 from master
[1.7.x] Fixed #22676 -- makemigrations --dry-run should not ask for defaults

Made the fix in InteractiveMigrationQuestioner class code, rather than
MigrationAutodetector, because --dry-run shouldn't affect whether
MigrationAutodetector will detect non-nullable fields, but the
questioner should skip the question and returns a None for default
(since that won't be used anyway) if --dry-run is used.

Backport of ee14961a2a from master
[1.7.x] Fixed #22688 -- Documented ready() may be called more than once

Backport of b8fc167b32 from master.