[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.

> According to some very simple tests, updating the annotation no longer overrides the value that has been changed manually.

That is a symptom of another problem. The reason that happens is because the `showDiff` field is being persisted on the save, which means it's not undefined on the model anymore, so it's not undefined after the `angular.extend` at the top of render. If the property were not being persisted then it would be undefined every time.