Support project configs in multiple locations

If a project definition appears in more than one file (which will
be necessary if a project wants to add a job to its pipeline config
and even more so if that appears in multiple branches) it should be
merged with the existing project config.

To accomplish that, when building the layout, pass all of the
project definitions to the project parser so that we can re-use
the existing template/project-pipeline-config inheritance mechanism
to merge all of the project-pipeline definitions across all of these
configurations.  Rely on the job implicit branch matching to
automatically resolve a given job appearing in the project-pipeline
on multiple branches.

Also, change the in-repo-config zuulv3 test to not use Ansible since
we now have sufficient ansible test coverage elsewhere and this does
not exercise any ansible features.

Change-Id: I5e4cddbc5d29215e2d9da4749c5ec06738e3b305
4 files changed