(CFACT-114) Add Windows dmi resolver
(CFACT-114) Add Windows virtualization facts
(CFACT-114) Update virtualization_resolver to match facter
(CFACT-114) Call WMI over COM instead of exec

Cut 100ms off execution time by calling WMI directly via an internal COM
server instead of executing wmic for each query.
(CFACT-114) Release COM resources when done

COM resources are generally no longer needed after gathering facts, so
release them. Done specifically for the case where libfacter is loaded as
a DLL in a longer-running process.
(CFACT-114) Add a library for UTF conversion

Windows APIs use UTF-16, but the default encoding of our software is
assumed to be UTF-8. Thus a Windows-specific conversion library is added
for converting from UTF-8 strings to UTF-16 wstrings and UTF-16 wstrings
to UTF-8 strings.
(CFACT-114) Error handling and cleanup

Add error handling for UTF conversions; an exception is thrown if UTF
conversion fails. Also correctly release COM resources if an exception is
thrown during WMI initialization.

Remove wmi::release, as it's probably not needed and no good place to use
it.
Merge pull request #176 from MikaelSmith/task/master/CFACT-114-virtualization-manufacturing

(CFACT-114) Add Windows DMI and Virtualization facts