singularity.{plugin}.config_updated: emitted from app, listeners pick it up

also tests & conforming to BDD in singularity test