Change logging/loggingserver from QTimer to MythSignalingTimer

Also fixed a few more uninitialized data issues in the LoggingItem, and added
isActive() to MythSignalingTimer class
Change MythSignalingTimer to use QWaitCondition

When you do a MythSignalingTimer::stop(), the method would not return until
the next timer expiry.  This is an issue as I'm using it for a QTimer
replacement with a 5 minute timer...  Changed it to use QWaitCondition such
that it is interrupted nearly immediately when ::stop() is run.  Also, unlock
the mutex before running wait() as this avoids a deadlock.

Also changed the locking in the loggingserver to avoid more possible
deadlock situations.
Build zeromq without documentation

Fixes #10840

Signed-off-by: Gavin Hurlbut <ghurlbut@mythtv.org>
Remove some ancient debugging code in SignalMonitor.
Fix documentation in mythsystem.h
Remove unused SyslogLogger::m_application
Refactor Logger creation

Make FileLogger::create, SyslogLogger::create, DatabaseLogger::create.  Also
make the *Logger::setupZMQSocket return false on failure, and move the
nzmqt exception handling much tighter around the code that would be raising
the exceptions. Added exception handling in the client logger too.
Make sure to initialize all pointers in LoggingItem's bare ctor
Fix the deadlocking on exit caused by the timer changes for logging.
Fix windows compilation error
Protect the reschedule queue with a seperate lock to fix a backend deadlock.

Fixes a deadlock in mythbackend caused when a reschedule request occurs
immedately prior to a recording starting.

The recorder thread locks the scheduler when starting a recording. The pending
reschedule request handled in the event loop waits for the scheduler lock to be
released blocking the event loop. The backend is now stopped from handling any
further events or protocol requests, meanwhile the recorder is waiting on
events to be processed before it will release the lock resulting in an
irrecoverable deadlock (or hang) and the failure of the recording.

This deadlock was more likely to be triggered for users of EIT because it will
ask for a reschedule every 5 minutes in addition to any reschedules triggered
through other means.

Refs #10771
Change the signature of TvPlayWindow::gestureEvent() to match the base class, the two diverged at some point.
Seems I borked unix->myth times in my change.

The myth->unix needs to convert from localtime -> GMT, but somehow the other
way requires GMT as an input directly.  Still scratching my head on this one.
Changes seconds to milliseconds in poller loop.

This corrects the timeout duration in the poller loop used to read data
from external programs.  Code was written assuming timeouts in floating
point seconds, while poll() API takes milliseconds.  Ahh.. consistency..

Fixes #10837
Rework SignalHandler for more compact code

Rather than have special cases all over, I have abstracted the code so it's
easier to deal with.

The pre-generated strings for the "last gasp" output for SEGV, etc has been
changed to include the entire string so it only uses one write() call.

Moved SIGHUP handling in the logserver to use the common SignalHandler class
code.

Added SIGBUS, SIGFPE, SIGILL to our standard supported signals, treating them
the same as SIGSEGV.
Disable SignalHandler::AddHandler for windows
And disable SignalHandler::handleSignal
Add Studio search method.
Add Genre list and associated Movie search
Merge commit '6e7725de7d8507c3675aa89b17a49da06abc7cc2'