Fixed #21169 -- Reworked RelatedManager methods use default filtering

The `remove()` and `clear()` methods of the related managers created by
`ForeignKey`, `GenericForeignKey`, and `ManyToManyField` suffered from a
number of issues. Some operations ran multiple data modifying queries without
wrapping them in a transaction, and some operations didn't respect default
filtering when it was present (i.e. when the default manager on the related
model implemented a custom `get_queryset()`).

Fixing the issues introduced some backward incompatible changes:

- The implementation of `remove()` for `ForeignKey` related managers changed
  from a series of `Model.save()` calls to a single `QuerySet.update()` call.
  The change means that `pre_save` and `post_save` signals aren't called anymore.

- The `remove()` and `clear()` methods for `GenericForeignKey` related
  managers now perform bulk delete so `Model.delete()` isn't called anymore.

- The `remove()` and `clear()` methods for `ManyToManyField` related
  managers perform nested queries when filtering is involved, which may
  or may not be an issue depending on the database and the data itself.

Refs. #3871, #21174.

Thanks Anssi Kääriäinen and Tim Graham for the reviews.
Used simpler queries for m2m clearing when possible.

Refs #21169
Added a bulk option to RelatedManager remove() and clear() methods

Refs #21169
PEP-8 cleanup

Refs #21169
Fixed typo in release notes.
Merge pull request #2000 from loic/docs

Fixed typo in release notes.
Added a warning regarding risks in serving user uploaded media.

Thanks Preston Holmes for the draft text.
A handle of flake8 fixes
Fixed #21515 -- Corrected example of template.Context in documentation.

Thanks to trac user oubiga for the report.
Fixed #21517 -- Added unit test for non-autoincrement primary key with value 0.
Fixed E125 pep8 warnings
All the E125 errors hvae been eradicated.
Fixed #21496 -- Fixed crash when GeometryField uses TextInput

Thanks Rhett Garber for the report and initial patch.
Use 'update_fields' in RelatedManager.clear() when bulk=False.

Thanks Simon Charette for the suggestion.

Refs #21169.
Merge pull request #2005 from loic/ticket21169

Use 'update_fields' in RelatedManager.clear() when bulk=False.
Fixed a deprecation warning introduced by 96dd48c83f.
Fixed #21380 -- Added a way to set different permission for static directories.

Previously when collecting static files, the directories would receive permissions
from the global umask. Now the default permission comes from FILE_UPLOAD_DIRECTORY_PERMISSIONS
and there's an option to specify the permissions by subclassing any of the
static files storage classes and setting the directory_permissions_mode parameter.
Fixed #20867 -- Added the Form.add_error() method.

Refs #20199 #16986.

Thanks @akaariai, @bmispelon, @mjtamlyn, @timgraham for the reviews.
Removed Form._errors from the docs in favor of the add_error API.
Fixed an unescisarily gendered pronoun in a docstring