sh: Make sure output suitable as shell input is also printable.

Commands like 'export -p', 'set' and 'trap', and tracing enabled via 'set
-x' generate output suitable as shell input by adding quotes as necessary.

If there are control characters other than newline or invalid UTF-8
sequences, use $'...' and \OOO to display them safely.

The resulting output is not parsable by a strict POSIX.1-2008 shell but sh
from FreeBSD 9.0 and newer and many other shells can parse it.


git-svn-id: svn+ssh://svn.freebsd.org/base/head@275766 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
Add a vigr(8) utility which does for /etc/group what vipw(8) does for
/etc/master.passwd.


git-svn-id: svn+ssh://svn.freebsd.org/base/head@275768 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f