Separate reporters from triggers

Allows multiple reports per a patchset to be sent to pluggable
destinations. These are configurable per pipeline and, if not
specified, defaults to the legacy behaviour of reporting back only
to gerrit.

Having multiple reporting methods means only certain success/failure
/start parameters will apply to certain reporters. Reporters are
listed as keys under each of those actions.

This means that each key under success/failure/start is a reporter and the
dictionaries under those are sent to the reporter to deal with.

Change-Id: I80d7539772e1485d5880132f22e55751b25ec198
diff --git a/NEWS.rst b/NEWS.rst
index f6500f0..db269a4 100644
--- a/NEWS.rst
+++ b/NEWS.rst
@@ -37,3 +37,8 @@
     zuul.pipeline.{pipeline-name}.job.{job-name}.{result}
   * Job names in statsd keys now have the '_' character substituted
     for the '.' character.
+
+* The layout.yaml structure has changed to introduce configurable
+  reporters. This requires restructuring the start/success/failure
+  actions to include a dictionary of reporters and their parameters.
+  See reporters in the docs and layout.yaml-sample.