Allow multiple semaphore definitions within a project

A project should be able to create a branch including its zuul
configuration at any point.  However, if a project includes a
semaphore definition and it creates a new branch, the semaphore
will be defined twice, which is an error.  Special case this
so that if a semaphore definition appears multiple times within
the same project, subsequent definitions are silently ignored.

Definitions across different projects will still result in an
error.

Change-Id: I7cd91ac244717a6da9ef1fca97793c8b1cd63bec
1 file changed