Add job inheritance and start refactoring

This begins a lot of related changes refactoring config loading,
the data model, etc., which will continue in subsequent changes.

Change-Id: I2ca52a079a837555c1f668e29d5a2fe0a80c1af5
diff --git a/tests/fixtures/config/in-repo/common.yaml b/tests/fixtures/config/in-repo/common.yaml
index 96aebd6..f38406b 100644
--- a/tests/fixtures/config/in-repo/common.yaml
+++ b/tests/fixtures/config/in-repo/common.yaml
@@ -1,6 +1,6 @@
 pipelines:
   - name: check
-    manager: IndependentPipelineManager
+    manager: independent
     source:
       gerrit
     trigger:
@@ -14,7 +14,7 @@
         verified: -1
 
   - name: tenant-one-gate
-    manager: DependentPipelineManager
+    manager: dependent
     success-message: Build succeeded (tenant-one-gate).
     source:
       gerrit
diff --git a/tests/fixtures/config/in-repo/zuul.conf b/tests/fixtures/config/in-repo/zuul.conf
index 14708aa..1910084 100644
--- a/tests/fixtures/config/in-repo/zuul.conf
+++ b/tests/fixtures/config/in-repo/zuul.conf
@@ -2,7 +2,7 @@
 server=127.0.0.1
 
 [zuul]
-tenant_config=tests/fixtures/config/in-repo/main.yaml
+tenant_config=config/in-repo/main.yaml
 url_pattern=http://logs.example.com/{change.number}/{change.patchset}/{pipeline.name}/{job.name}/{build.number}
 job_name_in_report=true
 
diff --git a/tests/fixtures/config/multi-tenant/common.yaml b/tests/fixtures/config/multi-tenant/common.yaml
index d36448e..8fc3bba 100644
--- a/tests/fixtures/config/multi-tenant/common.yaml
+++ b/tests/fixtures/config/multi-tenant/common.yaml
@@ -1,6 +1,6 @@
 pipelines:
   - name: check
-    manager: IndependentPipelineManager
+    manager: independent
     source:
       gerrit
     trigger:
diff --git a/tests/fixtures/config/multi-tenant/tenant-one.yaml b/tests/fixtures/config/multi-tenant/tenant-one.yaml
index 7b2298c..c9096ef 100644
--- a/tests/fixtures/config/multi-tenant/tenant-one.yaml
+++ b/tests/fixtures/config/multi-tenant/tenant-one.yaml
@@ -1,6 +1,6 @@
 pipelines:
   - name: tenant-one-gate
-    manager: DependentPipelineManager
+    manager: dependent
     success-message: Build succeeded (tenant-one-gate).
     source:
       gerrit
@@ -21,6 +21,10 @@
         verified: 0
     precedence: high
 
+jobs:
+  - name:
+      project1-test1
+
 projects:
   - name: org/project1
     check:
diff --git a/tests/fixtures/config/multi-tenant/tenant-two.yaml b/tests/fixtures/config/multi-tenant/tenant-two.yaml
index 57ad64d..6cb2d9a 100644
--- a/tests/fixtures/config/multi-tenant/tenant-two.yaml
+++ b/tests/fixtures/config/multi-tenant/tenant-two.yaml
@@ -1,6 +1,6 @@
 pipelines:
   - name: tenant-two-gate
-    manager: DependentPipelineManager
+    manager: dependent
     success-message: Build succeeded (tenant-two-gate).
     source:
       gerrit
@@ -21,6 +21,10 @@
         verified: 0
     precedence: high
 
+jobs:
+  - name:
+      project2-test1
+
 projects:
   - name: org/project2
     check:
diff --git a/tests/fixtures/config/multi-tenant/zuul.conf b/tests/fixtures/config/multi-tenant/zuul.conf
index ceb3903..346450e 100644
--- a/tests/fixtures/config/multi-tenant/zuul.conf
+++ b/tests/fixtures/config/multi-tenant/zuul.conf
@@ -2,7 +2,7 @@
 server=127.0.0.1
 
 [zuul]
-tenant_config=tests/fixtures/config/multi-tenant/main.yaml
+tenant_config=config/multi-tenant/main.yaml
 url_pattern=http://logs.example.com/{change.number}/{change.patchset}/{pipeline.name}/{job.name}/{build.number}
 job_name_in_report=true
 
diff --git a/tests/fixtures/layout.yaml b/tests/fixtures/layout.yaml
index 99b135c..e30147f 100644
--- a/tests/fixtures/layout.yaml
+++ b/tests/fixtures/layout.yaml
@@ -3,7 +3,7 @@
 
 pipelines:
   - name: check
-    manager: IndependentPipelineManager
+    manager: independent
     source:
       gerrit
     trigger:
@@ -17,7 +17,7 @@
         verified: -1
 
   - name: post
-    manager: IndependentPipelineManager
+    manager: independent
     source:
       gerrit
     trigger:
@@ -26,7 +26,7 @@
           ref: ^(?!refs/).*$
 
   - name: gate
-    manager: DependentPipelineManager
+    manager: dependent
     failure-message: Build failed.  For information on how to proceed, see http://wiki.example.org/Test_Failures
     source:
       gerrit
@@ -48,7 +48,7 @@
     precedence: high
 
   - name: unused
-    manager: IndependentPipelineManager
+    manager: independent
     dequeue-on-new-patchset: false
     source:
       gerrit
@@ -59,7 +59,7 @@
             - approved: 1
 
   - name: dup1
-    manager: IndependentPipelineManager
+    manager: independent
     source:
       gerrit
     trigger:
@@ -73,7 +73,7 @@
         verified: -1
 
   - name: dup2
-    manager: IndependentPipelineManager
+    manager: independent
     source:
       gerrit
     trigger:
@@ -87,7 +87,7 @@
         verified: -1
 
   - name: conflict
-    manager: DependentPipelineManager
+    manager: dependent
     failure-message: Build failed.  For information on how to proceed, see http://wiki.example.org/Test_Failures
     source:
       gerrit
@@ -108,7 +108,7 @@
         verified: 0
 
   - name: experimental
-    manager: IndependentPipelineManager
+    manager: independent
     source:
       gerrit
     trigger: