Fixed #21872: Not detecting dependencies from M2M fields
Minor cleanup.
Removed superfluous uses of TransRealMixin.

The translation.override context manager cleans up after itself. As a
consequence this mixin isn't needed any more in many cases.
Removed TransRealMixin.

Fixed #21688. Refs https://github.com/django/django/pull/1147.
Fixed #21874 -- Require Django applications to have a filesystem path.

Wherever possible this filesystem path is derived automatically from the app
module's ``__path__`` and ``__file__`` attributes (this avoids any
backwards-compatibility problems).

AppConfig allows specifying an app's filesystem location explicitly, which
overrides all autodetection based on ``__path__`` and ``__file__``. This
permits Django to support any type of module as an app (namespace packages,
fake modules, modules loaded by other hypothetical non-filesystem module
loaders), as long as the app is configured with an explicit filesystem path.

Thanks Aymeric for review and discussion.