Fix channel detection.

Use new request_channel_layout API

Fixes #12244

(cherry picked from commit cf65b55fe4b11219e1ca6ec80c33debc69b344a2)
Have info and playback screen show proper number of channels

(cherry picked from commit bade69e7a16f64049efa8c16dfda508484a1ada1)
Merge branch 'fixes/0.27' into devel/027candidates
More accurate error message when an IP is passed to GetBackendServerIP() instead of a hostname

(cherry picked from commit cb54c9ce9bac3813a05a63601b4ee0b1f07e518c)
RemoteFile::Exists() - If we've been passed an empty string then don't waste time looking for it.

(cherry picked from commit 66f3d9e396828131d0fbd2a0921ae23a18bf56b1)
CoreContext: Simplify use of IsThisHost, make it work with hostnames

(cherry picked from commit 36a58a15b5a71e8213da183709da390889e784c4)

Conflicts:
	mythtv/libs/libmythbase/mythcorecontext.cpp
	mythtv/libs/libmythmetadata/metadataimagedownload.cpp
Fix doxygen comment

(cherry picked from commit a99e3d30e9ac1f5ca074757b5cf954c940e2c615)
corecontext: Add IsThisBackend API

Will determine if we are a backend, and we are the requested host

(cherry picked from commit be87ab8e4a84a5838c8947d9016d9a85683fe8a1)
UPNP: Fix upnp albumart after move to storage groups.

(cherry picked from commit 62d3892702ed1fdf5c1984839ef0cce6a8323bc0)

Conflicts:
	mythtv/libs/libmythmetadata/musicmetadata.cpp
remotefile: use IsThisBackend API

We really want each backend to look after the hostname they are managing, and not forward everything through the master backend.

(cherry picked from commit ef8694a20a3db8f1da91e78074314cdc635f6cf9)

Conflicts:
	mythtv/libs/libmythbase/remotefile.cpp
Fix more IP vs hostname confusion in myth:// urls

A myth url consists of <group>@<hostname>:<port> where <hostname> is
the unique identifier of a backend, NOT an IP address. Some code
rightly expects to be able to extract the hostname from the URL and
use it as the unique identifier, for example to StorageGroup() or as a
key for DB lookups. The places where an IP was used broke this
assumption and caused the code to take an extended route to complete
it's task, or caused failures.

The 'hostname' will be converted to an IP address only at the point
where we connect to the remote backend to transfer/delete/etc the
file. Since only mythtv is expected to handle myth:// urls this is OK.

Since this has been causing confusion for some time there may be parts
of the code that incorrectly expect an IP address which will have to
be fixed.

(cherry picked from commit 18cd3832585d3d993de9561f07885280c3c2ee8e)

Conflicts:
	mythtv/libs/libmythbase/remotefile.cpp
	mythtv/libs/libmythmetadata/musicmetadata.cpp
	mythtv/programs/mythbackend/mainserver.cpp
	mythtv/programs/mythfrontend/gallerydatabasehelper.cpp
	mythtv/programs/mythfrontend/gallerywidget.cpp
Fix compilation after 27791ae and 55e03d
Fix the ability to disable the frontend idle timer

(cherry picked from commit 88032d7238bee35e48a97de17c5054ef419630d2)

Conflicts:
	mythtv/libs/libmythui/mythmainwindow.cpp
Merge branch 'devel/027candidates' into fixes/0.27
AirPlay: Fix iOS 8 not seeing video device.

This is done by advertising support for mirror service (which we don't).

(cherry picked from commit 50b182f1120aa0f1ea6f580bffd0630384170282)
MythUIScrollBar: Initialize maximum to zero until it is actually known,
otherwise the scrollbar is drawn prematurely.

(cherry picked from commit 899f3d3185c994715c86cd42bf56e011266e4c9c)
MythMainWindow::Norm: With very small values of x, scaling down can cause
the 'normalized' value to go to zero.  Rounding the result fixes this, and
is probably more desireable anyway.

(cherry picked from commit 42bae47be8794eac2dadff3b4fd1a7fa3c547b82)