Bug 1021608 - [Messages] Report view visual refresh

- Report view visual refresh
- Adding a resend button in error status report page
- Add more message event listener for report view update


I find the added logic acually quite difficult to follow, and I'm afraid this can also show issues to the user:
* will delay showing the new info
* will show the user old values (since we still append the old request)

Here is how I'd do this:
* keep a counter, start it to 0
* when calling renderContactList, increment the counter and store the value.
* in the findByAddress result, get the counter value again. If it's different, then it means renderContactList was called again, and we can return early.
* note: we can also use and store a timestamp instead of the counter. But it's really the same idea.

Now, maybe another simpler idea is just to not call renderContactList in the race issue you outline? When we resend and the error return immediately, the recipients should stay the same, so we should not need to rerender contact list in that case. Maybe it's possible to do a separate function "updateStatusInfo" that would update only the info that changed? Then we limit the race possibility (it still exists but it's now a very rare issue) and so we can remove all this complexity. What do you think?