Use uniscribe to calculate character offsets where allowed (#10550)
* OffsetsTextInfo._getCharacterOffsets: use uniscribe where possible to calculate the bounds for a character. This allows us to treat something like e-acute as one character.
* Add copyright header to textUtils.cpp
* Fix linting issues.
* Restore some accidentally removed code from OffsetsTextInfo._getCharacterOffsets, allowing unit tests to pass again.
* nvdaHelperLocal's textUtils.cpp: abstract out code to avoid duplicate code in both calculateWordOffsets and calculateCharacterOffsets.
* Address review actions.