fix vim editing (Linux) + group related fs events

- Linux/inotify: relies on close_write where  attribs are not updated (e.g.  ecryptfs)

- all local adapters: logically groups related fs events into single changes (or skips them completely)

- avoids notifying multiple events per file

- fix tests to more consistently use Pathname instead of strings

- additional tests for _smoosh_changes to test for and handle various editor-related differences in the future

- use "shift" instead of "pop" to process received events in order (for whatever future reason)

- treat "mv a x && mv x a" like "touch a"