fix + workarounds for editor support on Linux

  - Linux/inotify: relies on close_write where
  attribs are not updated (e.g.  ecryptfs)

  - handle rename() calls used by Kate and
  Sublime by detecting unrelated move_to

  - all local adapters: logically groups related
  fs events into single changes (or skip 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)