FormBrowse: File tree / diff Tab: fix "Open containing folder" behaviour

- File tree tab: "Open containing folder" now also works on directory nodes (instead of file nodes only)
- Diff tab: If a file does not exist then "Open containing folder" now opens the parent directory of the non-existing file

plus: factor out the logic from the big FormBrowse.cs into a new file FormBrowseUtil.cs