(PUP-2732) Use less restrictive exec user validation

See https://tickets.puppetlabs.com/browse/PUP-2732 for more information.
You were right. Unfortunately this led to problems running on Windows. I now check if running on Windows or not first before using the Etc.getpwuid() function.
Code is not pretty nice especially in lib/puppet/provider/exec.rb but it works. Additionally usage of user attribute is actually not supported on Windows but it's better to be prepared for future changes than sweepingly setting exec_user = nil on Windows.