linux: Check for Logind first, then *Kit-s with UPower when detecting PM framework

Logind is the most likely candidate to work nowadays and latest UPower does
not provide suspend/hibernate API.
[pvr] add missing call to parent's OnPrepareFileItems()
[ResamplePi] Add support for formats that need shifting

This case is triggered by HiFiBerry's 24-bit format.
Requires updated firmware
Merge pull request #5651 from rbalint/fix-suspend

Fix suspend with upowerd >= 0.99.1
fix incorrect display of fps when dr kicks in
Merge pull request #5731 from popcornmix/white_noise

[ResamplePi] Add support for formats that need shifting
Merge pull request #5730 from Jalle19/add-base-call

[pvr] add missing call to parent's OnPrepareFileItems()
Merge pull request #5732 from FernetMenta/dr

fix incorrect display of fps when dr kicks in
vdpau: advanced settings for auto deinterlacing
ActiveAE: slightly reduce buffer size
pthreads: use mutex protocol PTHREAD_PRIO_INHERIT
vaapi: lock gfx context on pre-cleanup
[linux] Add FDEventMonitor for monitoring file descriptors

Add FDEventMonitor helper thread for monitoring file descriptors for
events (ready for read, ready for write) without the need for spawning
a separate thread with a tight loop around poll()/select().

FDEventMonitor uses an eventfd for signaling poll() instead of a
timeout, therefore it can sleep for long times in case of no events but
still immediately respond to e.g. shutdown.
[AE] ALSA: Add ALSADeviceMonitor for monitoring card removals/additions
[AE] ALSA: Add ALSADeviceMonitor for monitoring ELD changes

ELD changes can happen e.g. when the connected HDMI sink is changed.
[AE] ALSA: Add more logging to device change triggers
[AE] ALSA: Fix DeviceChange event triggered by enumeration

All hctl elements get an SND_CTL_EVENT_MASK_REMOVE event when the ctl
file descriptor is closed, which is done e.g. when re-enumerating
devices.

(SND_CTL_EVENT_MASK_REMOVE & SND_CTL_EVENT_MASK_VALUE) is true, and
therefore we re-triggered enumeration (depending a bit on timing).

Fix that by checking for the special _REMOVE value first and ignoring
those events.
ActiveAE: add some debug logging
AppMessenger: support for setting volume
AESinkPUSLSE: Use ApplicationMessenger to alter internal volume