Always create foreign projects if needed

If Zuul encounters a project it does not know about via a
cross-repo dependency (CRD), it creates a record of it in memory
and refers to it as a foreign project.  In some cases, if Zuul
received an event for a change in a project *before* it processed
a CRD reference for the project, it would cache that change with
the associated project set to None, and the subsequent CRD
processing would fail to create the foreign project.

Resolve this by simply always creating a foreign project if it is
needed.  It's not obvious why we would ever not want to do that.

Change-Id: I4e6d5cb1f17e80879c23414ce45c66572dbc1d3e
3 files changed