(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.