qtd3dservice: Restructure handling for service mode
This moves qtd3dservice from a shared process to its own process. This
is required to fix problems with accessing the emulators from multiple
threads and to run qtd3dservice as the logged-on user.
- The service process which provides a thread for each worker, and can
add and remove workers as needed.
- The same threading model is used in service and direct modes to
reduce complexity and behavioral differences between modes.
- Device handlers can be quit from the main thread by setting their
run lock event.
Change-Id: I8734348011a87f0f69549a11a45d70fe3a2df69d
Reviewed-by: Oliver Wolff <oliver.wolff@digia.com>