Previously, services would be killed anytime an interface was
deactivated, even if another interface was still connected to a trusted
network. Now we check all active connections against the trusted list
and take the appropriate action.
It's also more modular, and allows the user to more easily
activate/deactive services directly without stopping/starting networking
if for some reason the dispatcher didn't run correctly.