Add --winrm-authentication-protocol option 

@adamedx @NimishaS 

--winrm-authentication-protocol option has [basic, negotiate, kerberos] values. 
On windows --winrm-authentication-protocol = 'negotiate' applies 'winrm-s' monkey patch to do encrypted winrm communication.

It's helpful to include the invalid value in the error message because sometimes the value is set in a configuration file and it's not obvious where that file is or which one it is if you have a few, i.e.
```
ui.error "Invalid value '#{winrm_auth_protocol}' for --winrm-authentication-protocol option."
ui.error "Valid values are basic, negotiate, or kerberos."
```

You could also set the valid values in a constant and then use that constant both in the error message and in the check so they're consistent if they change in the future.