Add support for 'connection' concept

This is a large refactor and as small as I could feasibly make it
while keeping the tests working. I'll do the documentation and
touch ups in the next commit to make digesting easier.

Change-Id: Iac5083996a183d1d8a9b6cb8f70836f7c39ee910
diff --git a/tests/test_trigger.py b/tests/test_trigger.py
index a09da21..7eb1b69 100644
--- a/tests/test_trigger.py
+++ b/tests/test_trigger.py
@@ -23,8 +23,7 @@
 
     def test_trigger_abc(self):
         # We only need to instantiate a class for this
-        trigger = zuul.trigger.gerrit.GerritTrigger(None, None, None,  # noqa
-                                                    None)
+        zuul.trigger.gerrit.GerritTrigger({})
 
     def test_trigger_name(self):
         self.assertEqual('gerrit', zuul.trigger.gerrit.GerritTrigger.name)
@@ -35,7 +34,7 @@
 
     def test_trigger_abc(self):
         # We only need to instantiate a class for this
-        trigger = zuul.trigger.timer.TimerTrigger(None, None)  # noqa
+        zuul.trigger.timer.TimerTrigger({})
 
     def test_trigger_name(self):
         self.assertEqual('timer', zuul.trigger.timer.TimerTrigger.name)
@@ -46,7 +45,7 @@
 
     def test_trigger_abc(self):
         # We only need to instantiate a class for this
-        trigger = zuul.trigger.zuultrigger.ZuulTrigger(None, None)  # noqa
+        zuul.trigger.zuultrigger.ZuulTrigger({})
 
     def test_trigger_name(self):
         self.assertEqual('zuul', zuul.trigger.zuultrigger.ZuulTrigger.name)