Improve speech XML function usage (#19793)
Spawned from #19740
### Summary of the issue:
It was hard to track all the different places language codes are
normalized in NVDA.
### Description of developer facing changes:
This pull request standardizes language code formatting across the NVDA
codebase by introducing and using the `toXmlLang` and `toNvdaLang`
utility functions from `speechXml`. This ensures consistent handling of
language codes (e.g., converting between underscores and hyphens) when
interacting with speech synthesis engines and related components.
### Description of development approach:
Replaced manual string manipulation for language codes (such as
`replace("_", "-")` or `replace("-", "_")`) with the use of `toXmlLang`
and `toNvdaLang` utility functions in `speech.py`, `_espeak.py`,
`espeak.py`, and `oneCore.py` to ensure consistent formatting for speech
engine interoperability.