Add job option to hold following changes.

By setting 'hold-following-changes' to True on .*-merge jobs,
jobs for following changes in the dependend change queue won't be
launched until all of the -merge jobs ahead of them complete
successfully.  This prevents wasting resources on testing changes
that have no chance of merging as tested.  It gives up a small
amount of parallelization in order to achieve this (merge jobs will
now run in series, while other jobs may continue to run in parallel).

This should also help ensure that jobs nearer the front of the queue
run sooner than jobs at the back.  Currently, the nondeterminism of
job run-time can cause Jenkins to use limited resources on the back
of the queue instead of the front.

Also fixes these bugs:

* The success/failure messages specified were not being used.
* If a parameter function was applied to a meta-job, it would not
  be applied to jobs that matched the meta-job.

Change-Id: I03cc3e25c554d8aeb1ddb478afaed168a961962f
diff --git a/doc/source/zuul.rst b/doc/source/zuul.rst
index 605dea6..8d7bbef 100644
--- a/doc/source/zuul.rst
+++ b/doc/source/zuul.rst
@@ -268,6 +268,18 @@
 **success-message (optional)**
   The message that should be reported to Gerrit if the job fails.
 
+**hold-following-changes (optional)**
+  This is a boolean that indicates that changes that follow this
+  change in a dependent change queue should wait until this job
+  succeeds before launching.  If this is applied to a very short job
+  that can predict whether longer jobs will fail early, this can be
+  used to reduce the number of jobs that Zuul will launch and
+  ultimately have to cancel.  In that case, a small amount of
+  paralellization of jobs is traded for more efficient use of testing
+  resources.  On the other hand, to apply this to a long running job
+  would largely defeat the parallelization of dependent change testing
+  that is the main feature of Zuul.  The default is False.
+
 **branch (optional)**
   This job should only be run on matching branches.  This field is
   treated as a regular expression and multiple branches may be