Since IPv6 addresses can contain %{num} as the zone index, it's not safe to use QString::arg() in GenMythUrl(). Potentially fixes #11937
(cherry picked from commit 08b2525642ef1defa1390a4dbf35d5a3d2993147)
Improve the performance of Live TV embedded in the Program Guide.

Most of the Program Guide's DB and backend queries are moved out of
the UI loop into a background helper thread, to minimize the chance
of the embedded Live TV window stuttering.

More work can and should be done to pre-cache scheduler data and
channel tuning status, and to have the backend invalidate/update it
when there are changes.

The background computation introduces some guide navigation UI
oddities, where the expensive-to-compute elements (the list of
channels) update on the screen slower than other elements.

There is still some slight stuttering on a single-core ION frontend,
but most frontends should see a vast or complete reduction in Guide
navigation stuttering.

Refs #11020

(cherry picked from commit 7f2140ce062ade5a5523565b469ff58ada9c0d0d)

Conflicts:
    mythtv/programs/mythfrontend/guidegrid.cpp
Update ABI version after 1b16c65f465588a8991b730fb23ef0d1c61ed181.