First draft of a SHM-based communication of probe settings.

While the environment variable approach is a lot simpler, it doesn't work
for attaching at all. Also, this will allow a two-way communication to
return a non-default server port.
Integrate the old probe settings code into the new launcher.
Move probe path handling to the new settings system.

This now is also available in the probe when attaching at runtime, fixing
some cases where plug-ins weren't found.
Return the port number from the probe.
Only wait for the server port when using out-of-process mode.
Move starting the client to the new launcher class.

This now also makes use of the server port number received from the target.
Move the injector code to the new launcher.
Add a timeout to exit the launcher if the target isn't responding.
Fix inject-only mode.
Pick a random port if the default one is in use.

This enables the use of multiple instances at the same time, and properly
select which one to connect to.
Remove the splash screen from the GDB injector.

This code is now executed in a secondary thread, so this is no longer
working (or even asserting in debug builds). The splash screen is shown
by the client now anyway.
Handle input end on shared memory without asserting.
Use proper cross-endian safe communication also for sending the port number.
This part of the help text makes no sense without the graphical launcher.
Add command line switches for the network settings available in the UI.
Use the new command line options to make the GUI launcher work again.

Still ugly with using string-based settings keys, but that can be cleaned
up later.