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.
As documented in the release notes this is indeed the fix. The changes in `update_error_dict` is to address a potential problem in the pattern you described `self._errors = e.update_error_dict(self._errors)`: `_errors` is an `ErrorDict` and must remain so, when entering the first `else` clause the return value would have been a simple `dict`.