Since there are now hw accels available on other plaforms (videotoolbox
on mac and maybe vulkan decode on Windows) it no longer makes sense to
hide the option on those platforms.
Previously if UltraGrid crashed when probing a module, all remaining
modules would be left unqueried and missing.
This commit introduces a "safe mode", which tries to query each module
independently if querying everything at once fails.
Allows all destructors to run on exit. This was probably used to work
around a deadlock, but is perhaps not necessary anymore. There may still
be however a delay of a few seconds because of the vuMeters
connection loop.
Blocking until the process is finished was not very robust - in some
cases it could cause a deadlock preventing graceful exit. For example,
if the ug process is communicating with GUI through a socket and uses
blocking send - ug will wait for GUI to receive the data and GUI will
block waiting for ug to terminate.
Using this approach also allows to ignore crashes on exit, which are not
really worth reporting.
When ug process doesn't respond to termination GUI needs to kill it.
This makes the return code equal to 9 and GUI complains about a crash.
Without a message in the log this could have been confusing.
With this change the window should appear immediately. It will still be
unusable and frozen until all capababilities are queried, but should at
least give the user some indication that something is happening.
Probably all of the useful devices are now reported by capabilities, so
it's likely to be not even needed, so to avoid confusion it's moved into
the settings window and given a more descriptive name
All device configuration is now reported from capabilities in the same
way. Therefore it is now possible to generate the .device settings keys
during runtime for all reported modules