Cleanup approval requirement testing

On further inspection, trigger requirements will still be required
for parts of the kind of pipeline construction that we are using in
OpenStack; the idea that they could be completely replaced by
pipeline requirements is incorrect.  To that end, un-deprecate
trigger requirements and cleanup the testing of both of them so that
each requirement is tested (relatively) independently.  A small
amount of requirement composition is also tested, though all possible
combinations (a lot!) are not.

Move this testing into a new file for organizational purposes.

Also, support multiple vote values (eg, "+1" or "+2") when requiring
an approval.

Change-Id: I683c9a574ced0e27ced59e62b8059fef2dfd8b20
diff --git a/doc/source/zuul.rst b/doc/source/zuul.rst
index 4c5a624..e3ad2e8 100644
--- a/doc/source/zuul.rst
+++ b/doc/source/zuul.rst
@@ -423,13 +423,11 @@
     containing 'retrigger' somewhere in the comment text are added to a
     change.
 
-    *require-approval* (deprecated)
+    *require-approval*
     This may be used for any event.  It requires that a certain kind
     of approval be present for the current patchset of the change (the
     approval could be added by the event in question).  It follows the
-    same syntax as the "approval" pipeline requirement below.  This
-    form should be considered deprecated and the pipeline requirement
-    used instead.
+    same syntax as the "approval" pipeline requirement below.
 
   **timer**
     This trigger will run based on a cron-style time specification.
@@ -475,7 +473,9 @@
 
     Any other field is interpreted as a review category and value
     pair.  For example ``verified: 1`` would require that the approval
-    be for a +1 vote in the "Verified" column.
+    be for a +1 vote in the "Verified" column.  The value may either
+    be a single value or a list: ``verified: [1, 2]`` would match
+    either a +1 or +2 vote.
 
   **open**
   A boolean value (``true`` or ``false``) that indicates whether the change