Add support for remote shell provisioner script

With these changes Vagrant should be able to provision machine using remote scripts passed in as the `path` option:

```ruby
Vagrant.configure('2') do |config|
  config.vm.box = "raring64"
  config.vm.provision :shell, path: 'https://gist.github.com/a-user/some-gist'
end
```

PS: This PR should also close #1787 :)