=htc Fix handling of non-BMP characters in URI encoding/decoding

Closes #16014 by porting (improved versions) of these spray PRs:

- https://github.com/spray/spray/pull/855
- https://github.com/spray/spray/pull/856
This is completely unfair. Why do the Icelanders get a proper sentence but we only get the Swedish chef version "Hällö"? :wink:  And no don't try that at home kids.