Avoid changing buffer while narrowed

This is basically #404 again. I worked out why the problem didn't trigger from the ert test: `font-lock-mode` checks the buffer name and the emacs session's interactiveness:
```el
  ;; Don't turn on Font Lock mode if we don't have a display (we're running a
  ;; batch job) or if the buffer is invisible (the name starts with a space).
  (when (or noninteractive (eq (aref (buffer-name) 0) ?\s))
    (setq font-lock-mode nil))
```

-------------
fixes #474.