(CFACT-155) Fix POSIX execution to redirect to a writable /dev/null.

When not redirecting stderr to stdout, libfacter redirects stderr to
/dev/null on POSIX platforms.  However, the open call was passed the
read-only flag, making the stderr descriptor unwritable.

If a child process were to check if write failed on stderr (lsb_release
does, for example), then the process would fail when it would otherwise
succeed.

The fix is to allow the child process to write to the descriptor.
Merge pull request #209 from peterhuene/cfact/155

(CFACT-155) Fix POSIX execution to redirect to a writable /dev/null.
(CFACT-117) Add Windows networking facts

Adds Windows networking facts, implemented according to facter's behavior.

Major changes were:
- Refactoring the wmi API to return a vector of objects when multiple
  objects are returned, rather than returning those results split into
  ranges of values.
- Returning array values from wmi.
- Added a utility for querying the registry on Windows.
- Require Windows Vista as the minimum OS version.

We use forward-declaration instead of including Windows OS headers to avoid
polluting headers with too many includes/defines.

This doesn't really simplify anything because Unity builds still include
everything, but Unity builds are only a stepping stone until we have a
better C++ modular build solution.
Merge pull request #207 from MikaelSmith/task/master/CFACT-117-Windows-networking-facts

(CFACT-117) Add Windows networking facts