[WIP] Resurrect the removed visual diff support

This does what it used to do.
Probably brings back the same concerns which caused it's removal in the past
 - whatever those were.

( @tilgovi ? )

What is missing is the stying of the removed and added parts. (It used to be pasten green and ping bg, but you can get creative on that.

Feedback welcome.

> So this will be overridden every time the annotation is updated,

Do you mean *executed* ?

> which could be annoying when we re-introduce realtime again.

Are walking about performance here? (We are calculating one boolean flag per target, by a few very simple operators.)

> Does it make sense to have this be a directive-wide flag on the view model rather than per-target?

Doing it per-target would add complexity to the code (ie. having to set watches for all targets, taking care of adding new watches for new targets, removing watches for removed targets), and since we have 1 target per annotation, it would not improve performance, for now.

So, I don't think so.