Don't report changes that have already been reported.

If A is a dependent change of B, and A and B finish test around
the same time, the following may happen:

Complete event for A is received.
A is marked as complete.
Complete event for B is received.
B is marked as complete.
Begin processing complete event for A
A is reported.
Since A merged, and B is dependent on A, zuul checks to see if
  B should be reported (it may have been waiting on A).
B is complete, so it is reported.
End of processing A's complete event
Begin processing B's complete event
B is reported (but fails to report correctly).

To avoid this, record that a change has been succesfully reported,
(regardless of the outcome of tests), and if requested to report
the change again, simply return True, indicating that it has been
succesfully reported.

Change-Id: I5edbf158e7ef749cf855cadbacdc44161c054c59
2 files changed