Fix warning on unset HOME env variables

Inspired by pull request #334 (carbin++).  This approach has fewer dynamic
variable lookups than the pull request.
Introduce a stub for IO::Dup, for work on newio
Merge branch 'nom' into newio