Set RejectOnUnencrypted explicitly, for fastcgi tests

Fiddling the config at runtime does not propagate to the
RT_SiteConfig.pm file on disk, which is what the fastcgi tests use.
Using the explicit config argument to the test module properly
configures the Crypt setting in the fastcgi child.
Include the $PATH in the GnuPG/SMIME error message, and suggest a full path
Provide a default PATH in cases where it is unset (mod_fastcgi)

mod_fastcgi, by default, spawns fastcgi children with no environment --
including PATH.  In such cases, it is still possible to spawn
subprocesses without absolute paths: namely, if called via a subshell,
/bin/sh uses a compiled-in default $PATH, which varies per OS and
shell:

 Linux bash: /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
 OS X bash:  /usr/gnu/bin:/usr/local/bin:/bin:/usr/bin:.
 Linux zsh:  /bin:/usr/bin:/usr/ucb:/usr/local/bin

If the shell is skipped, and there is no PATH set, execvp(3) uses a
_different_ hardcoded default:

  Linux: .:/bin:/usr/bin
  OS X:  /usr/bin:/bin

File::Which is unaware of these two layers of varying defaults, and thus
fails to locate gnupg or openssl, despite that system() would likely
find them in /usr/bin.  As such, gpg or smime support is improperly
disabled in configurations where it worked previously.

To mimic the previous functionality, hard-code a default PATH in cases
where it is unset (not just empty), using the default value taken from
linux bash.
Merge branch '4.2/smime-gnupg-on-fastcgi' into 4.2-trunk