(CFACT-112, CFACT-113) Add Windows operating system and kernel facts

So generally the OS facts feed off the kernel facts and not vice versa (at least in Facter, the kernel facts are sort of the "root" facts that don't depend on any other facts to resolve).  I've tried sticking to that model in cfacter, although it ultimately is just a matter of convention.  Any preference for reversing this so the kernel name, release and version are populated from the API calls and the OS facts get the kernel facts and do what they need with them?