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)