Fix reporting on changes dequeued for deps

If a change is removed from a pipeline before the initial merge
for that change has returned with its dynamic configuration
(most likely because a dependency ahead failed quickly) then we
may not report it because we would hit the check which prevents
us reporting on changes with "no jobs" (ie, on projects that
aren't even in the pipeline).

This suggests a general class of failure where we may not know
whether to report certain kinds of failures.  For instance, we
may currently be overly agressively reporting configuration change
failures.

To avoid these, restructure the reporting function to first decide
whether any report should be sent at all based on whether the
project in question participates in the pipeline.  In most cases,
we will have completed the initial merge and created the dynamic
layout for the item, so we will use that layout to answer the
question.  In cases where we do not have the dynamic layout (eg,
the merge has not completed yet, the merge failed, or there was
a configuration error in the change), we fall back on the current
active layout for the system.  This means that we will be unable
to report a syntax error for a change *adding* a project to its
first pipeline.  However, in most other circumstances we should
either report or not report appropriately.

Change-Id: I3af5152b82965274da0ab1e2704109bcdf9e22c1
3 files changed