Reduce DOM nodes when updating reviewed status

There appears to be a memory leak associated with replacing an
existing Image widget in the hidden file list table. I think GWT is
not completely discarding the old checkmark Image when its replaced
by a new checkmark Image if the user re-reviews a file within the
patch set.

Minimize the leak by only making DOM changes if there really is a
modification in reviewed status.

Improve lookup performance on large patch sets by indexing all
Patch objects using a HashMap. This makes lookup for marking the
reviewed flag or updating draft counts to be O(1) rather than O(N),
which can help on larger patch sets.

Change-Id: I5530422bfb6b23cd5a990ac24f92e9f125dc7a1e
1 file changed