Make bootstrap with winrm have correct exit code with failure, and change default behavior of winrm command to fail on non zero exit code

Our integration tests correctly fail on non windows nodes when we bootstrap new nodes if there are recipe failures, but windows doesn't behave the same way.  This sets as default failure on the "workstation" if the bootstrap or other commands fail
Regarding why the "it should return 0 if returns is not set" isn't broken by the test is that the stubbed out method of winrm_command isn't the key.  the actual value of winrm_command doesn't cause the run method to fail. If this behavior would have been kept, and we wanted to enforce it, we would have replace the stub of 

-          allow(@winrm).to receive(:winrm_command).and_return(1)

with something like

    allow(session_mock).to receive(:exit_codes).and_return({"thishost" => "1"})

as in the method         it "should exit the process with non-zero status if the command fails and returns config is set to 0" do