Clean up event listener adding/removing in FindInFiles code so listeners
are consistently added exactly 1 time while results are visible:
- Supercedes original fix for #6923 (PR #7106) - FileSystem listener re-added
each time results updated or paged.
- Fixes issue where Document listener added even when 0 results, in which
case panel isn't shown (it used to excplicitly check for this case in order
to ignore changes).
- Fixes issue where Document listener re-added each time a new search is
run without closing the old results first.