provisioner/shell: WinRM fixes

This PR is backwards compatible, so it won't break anything if we merge it in prior to #1175 being accepted.

This PR allows #1175 to work with the following provisioners:
````
    {
      "type": "shell",
      "guest_os_type": "windows",
      "inline": ["mklink /d C:\\tmp C:\\Windows\\Temp"]
    },
    {
      "type": "shell",
      "guest_os_type": "windows",
      "script": "test.cmd"
    },
    {
      "type": "shell",
      "guest_os_type": "windows",
      "scripts": ["test.cmd"]
    }
````
It's regretable that the `guest_os_type` needs to be repeated in each provisioner, but as @sneal pointed out, we don't have access to the builder's `communicator_type` setting. Note that `communicator_type` will also need to be repeated for each builder, so it seems we need a higher level setting, perhaps a `guest_os_type`, at the same level as the `builders`, and `provisioners`.