Create an alert dispatcher with cancellation

The dispatcher needs to have the "config", which is stored here as "paths" because dispatcher needs to know all information about alerting (engine, timeout etc.) When config is managed by cluster-state, then passing paths becomes useless.