Restore visual diff to original behavior

This restores the following corner case:

When there is a difference, but it's only about
the case of the characters, don't want to show
the visual diff by default, but we offer the
feature to the user.

I also updated the tests the reflect the specs.
Okay, but my suggested name for the method doesn't mean it can't be extracted.

As you've pointed out though, this method has some hard to spot side effects which is a good indication of a code smell. Looking at the code some more, we're modifying the data for use in the view (adding a property to `target` to determine if this should be shown in the view).

A nicer way to handle this would be to store this information in view model specific map (of target index to boolean or similar). Then in the view model can have a method like `vm.hasDiff(target)` which can be used in the template.

This code can then be broken into steps, first calculate if targets need to show diffs, then calculate the global has/show values. This is complicated by the case behaviour but it can certainly be cleaned up.