RFC 3986 requires percent-encoding individual UTF-8 bytes. The
previous implementation iterated wxUniChar code points, producing
incorrect output for non-ASCII characters (e.g. é became %E9 instead
of %C3%A9, and multi-byte characters like emoji produced invalid
percent-encoding with more than two hex digits).
Extract duplicated helpers from remote provider files into shared
utilities. Split sendRpcMessage into purpose-specific functions.
Implement standard nonce-based exchange for re-auth. Provide
additional models for more efficient model/symbol/fp/etc using
external URLs. This allows us to better handle connection errors,
retries and large data packets.
Fixes https://gitlab.com/kicad/code/kicad/-/issues/23381