Reuse diff views more reliable
Reuse diff views more reliable

Fixes #1226

We used an in-memory store for all known diff views. We never garbage
collected any view though after closing, and after restarts we never
re-attached one of the possible open diff views.

We now just iterate over all views of the initiating window, and
compare the settings to find a view which is good enough to reuse.

divmain/GitSavvy,divmain/GitSavvy,divmain/GitSavvy