(#20072) Redirect stderr to the correct null device on windows

Previously the virt_what method redirected stderr to /dev/null, which fails on
windows. This commit adds a case for windows where the stderr is redirected to
NUL, the windows null device. It also adds tests to ensure this behavior.
(#22072) Execute fully resolved virt-what

Previously, we were calling virt-what, which on windows, causes it to
think it might be a shell built-in, which it isn't. And that results in
the warning:

  Using Facter::Util::Resolution.exec with a shell built-in is deprecated
  Most built-ins can be replaced with native ruby commands. If you really
  have to run a built-in, pass "cmd /c your_builtin" as a command.

This commit changes the virt-what helper to first resolve virt-what into a
fully qualified path, which uses ENV['PATH']. On Unix, it also looks in
/sbin and /usr/sbin.
Maint: Colorize spec output on Windows

Previously, running bundle exec rspec spec on Windows output ANSI escape
sequences. This commit requires the win32console gem to colorize the
output.
Merge branch 'ticket/1.7.x/20072_fix_virt_what_redirection' into 1.7.x

* ticket/1.7.x/20072_fix_virt_what_redirection:
  Maint: Colorize spec output on Windows
  (#22072) Execute fully resolved virt-what
  (#20072) Redirect stderr to the correct null device on windows