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/etc/layout.yaml-sample b/etc/layout.yaml-sample
index b49f5d5..30a3352 100644
--- a/etc/layout.yaml-sample
+++ b/etc/layout.yaml-sample
@@ -5,9 +5,11 @@
       gerrit:
         - event: patchset-created
     success:
-      verified: 1
+      gerrit:
+        verified: 1
     failure:
-      verified: -1
+     gerrit:
+        verified: -1
 
   - name: tests
     manager: IndependentPipelineManager
@@ -16,9 +18,11 @@
         - event: patchset-created
           email_filter: ^.*@example.org$
     success:
-      verified: 1
+      gerrit:
+        verified: 1
     failure:
-      verified: -1
+      gerrit:
+        verified: -1
 
   - name: post
     manager: IndependentPipelineManager
@@ -35,12 +39,14 @@
           approval:
             - approved: 1
     start:
-      verified: 0
+      gerrit:
+        verified: 0
     success:
-      verified: 2
-      submit: true
+      gerrit:
+        verified: 1
     failure:
-      verified: -2
+      gerrit:
+        verified: -1
 
 jobs:
   - name: ^.*-merge$
diff --git a/etc/zuul.conf-sample b/etc/zuul.conf-sample
index edf1044..cd4ba67 100644
--- a/etc/zuul.conf-sample
+++ b/etc/zuul.conf-sample
@@ -18,4 +18,4 @@
 git_dir=/var/lib/zuul/git
 ;git_user_email=zuul@example.com
 ;git_user_name=zuul
-status_url=https://jenkins.example.com/zuul/status
+status_url=https://jenkins.example.com/zuul/status
\ No newline at end of file