Reject invalid characters in XML strings (Bug#41094).

* lisp/xml.el (xml-escape-string): Search for invalid characters.
(xml-invalid-character): New error symbol.

* test/lisp/xml-tests.el (xml-print-invalid-cdata): New unit test.

* etc/NEWS: Document new behavior.
1 job for master in 90 minutes and 3 seconds (queued for 3 seconds)
Status Job ID Name Coverage
failed #6072


Name Stage Failure
test-all Test The script exceeded the maximum execution time set for the job
  GEN      lisp/eshell/eshell-tests.log
ELC lisp/faces-tests.elc
GEN lisp/faces-tests.log
ELC lisp/ffap-tests.elc
GEN lisp/ffap-tests.log
ELC lisp/filenotify-tests.elc
GEN lisp/filenotify-tests.log
Pulling docker image gitlab/gitlab-runner-helper:x86_64-d0b76032 ...
ERROR: Job failed: execution took longer than 1h30m0s seconds