Pulse annotation cards when updated

In order to help the user notice updates arriving over the websocket, this changeset causes cards to flash when they're updated.

If an annotation is part of a collapsed thread, then the flash will occur on the first visible parent thread.

Cards owned by the logged-in user will not flash. This is primarily an easy way of ensuring that cards don't flash in the same view as they are being edited (although it doesn't ensure this in all cases), but it also makes sense more generally: users don't need to be notified of changes they have made.