Issue #3534056: Dispatch EmailValidationErrorEvent from the validator service
- Add validateEmail() as the single public service method, returning an EmailValidationResult (error code + message).
- Dispatch EmailValidationErrorEvent on a validation failure so other modules can react and optionally change the message; the single dispatch lives in the service, covering user account validation and the Webform handler.
- Make validate() and errorMessageFromCode() private and drop them from the interface; the constraint validators and Webform handler call validateEmail().
- Add EmailValidationResult and tests for the event and the result.
Closes #3534056