Win32_Product call replaced with registry key search

1) Get-WmiObject Win32_Product is REALLY slow when you have lots of programs installed
2) The Win32_Product class works by enumerating every MSI package that is installed on the system. When a package is touched, it performs a reconfiguration where the application is validated (and repaired if found to be inconsistent with the original MSI). Serverspec should not be modifying the target machine, only testing its state.
3) The list that Win32_product produces is incomplete. For example, it is unable to find Google Chrome when it is present in "Add/Remove programs"