Properly handle the lifecycle of subprocesses
Re6st delegates much of its functionality to external programs, such as OpenVPN and Babel. Those are launched as subprocesses during network initialization, but their subsequent fate is left unchecked as soon as the network is running.
Re6st should handle those subprocesses crashing or failing in any way and take the appropriate measures (log an error, restart the process, ...).