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

> I think you are confused about how extend works with nested objects. `angular.extend` is not recursive.

Gotcha. I did assume that it's doing a deep copy.
Then how about using `jQuery.extend()` instead, which supports deep copy?