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
Merge remote-tracking branch 'upstream/master'