Fixed #22915 -- Document backward incompatible changes in the Validation...

...Error constructor.

This patch also fixes update_error_dict to better handle the use case described
in this ticket, previously the type of the provided container could be lost in
some conditions.
I think it only worked with `ErrorList`  before patch because it happened to be empty.

```
Pre-patch:

>>> ValidationError('foo').update_error_dict(ErrorList())
TypeError: list indices must be integers, not str

>>> ValidationError({'field': 'foo'}).update_error_dict(ErrorList())
{'field': [django.core.exceptions.ValidationError('foo', None, None)]}

>>> ValidationError({'field': 'foo'}).update_error_dict(ErrorList(['bar']))
AttributeError: 'ErrorList' object has no attribute 'setdefault'

Post-patch:

>>> ValidationError('foo').update_error_dict(ErrorList())
AttributeError: 'ErrorList' object has no attribute 'setdefault'

>>> ValidationError({'field': 'foo'}).update_error_dict(ErrorList())
AttributeError: 'ErrorList' object has no attribute 'setdefault'

>>> ValidationError({'field': 'foo'}).update_error_dict(ErrorList(['bar']))
AttributeError: 'ErrorList' object has no attribute 'setdefault'
```