Handle connection-local null-device and path-separator variables

* doc/lispref/os.texi (System Environment): Add `path-separator'
function and `null-device' variable and function.

* etc/NEWS: Mention 'null-device' and 'path-separator'.  Fix typos.

* lisp/files-x.el (path-separator, null-device): New defuns.  (Bug#3736)

* lisp/net/tramp-adb.el
(tramp-adb-connection-local-default-shell-variables): Rename from
`tramp-adb-connection-local-default-profile'.

* lisp/net/tramp-integration.el
(tramp-connection-local-default-system-variables): New defvar.
Add it to connection-local profiles.
(tramp-connection-local-default-shell-variables): Rename from
`tramp-connection-local-default-profile'.

* lisp/progmodes/grep.el (grep-hello-file): New defun.
(grep-compute-defaults): Use `null-device' function for remote
case. Handle remote `hello-file'.  Use `process-file-shell-command'.
(grep,grep-expand-keywords, lgrep): Use `null-device' function for
remote case.
1 job for master in 31 minutes and 30 seconds (queued for 4 seconds)
Status Job ID Name Coverage
  Test
failed #8925
test-all

00:31:30

 
Name Stage Failure
failed
test-all Test
make[2]: Leaving directory '/builds/emacs/emacs/lisp'
make[1]: Leaving directory '/builds/emacs/emacs/lisp'
make -C test check-expensive
make[1]: Entering directory '/builds/emacs/emacs/test'
rm -f ./*.tmp
make[2]: Entering directory '/builds/emacs/emacs/test'
make[3]: Entering directory '/builds/emacs/emacs/test'
ELC lisp/net/tramp-tests.elc
ERROR: Job failed: exit code 137