Allow overriding the inferred name from `config.vm.synced_folder`
Allow overriding the inferred name from `config.vm.synced_folder`

If a `name` is specified as an option, it will be used as the id instead
of inferring it from the `guestpath`. If `guestpath` is nil, the `name`
needs to be specified so the folder can be mounted with a name.

This also fixes the synced folder code to allow `guestpath` to be nil.
It was allowed in a previous version for the purpose of preventing a
directory from being auto mounted (#936), but seems to have become an
error at some point after that.

An example of modifying the default /vagrant folder so it doesn't
auto-mount anymore:

    config.vm.synced_folder ".", nil, name: "/vagrant"

An example of sharing another folder, but not auto-mounting it:

    config.vm.synced_folder ".", nil, name: "foobar"

Fixes #6835.

bryson/vagrant,mitchellh/vagrant,bshurts/vagrant,sni/vagrant,bshurts/vagrant,taliesins/vagrant,jtopper/vagrant,marxarelli/vagrant,justincampbell/vagrant,PatrickLang/vagrant,sni/vagrant,mitchellh/vagrant,taliesins/vagrant,benh57/vagrant,bryson/vagrant,crashlytics/vagrant,justincampbell/vagrant,PatrickLang/vagrant,taliesins/vagrant,crashlytics/vagrant,bryson/vagrant,mitchellh/vagrant,PatrickLang/vagrant,crashlytics/vagrant,mwrock/vagrant,PatrickLang/vagrant,mwrock/vagrant,jtopper/vagrant,gitebra/vagrant,gitebra/vagrant,jtopper/vagrant,bryson/vagrant,bdwyertech/vagrant,benh57/vagrant,bshurts/vagrant,mwrock/vagrant,crashlytics/vagrant,justincampbell/vagrant,sni/vagrant,chrisroberts/vagrant,chrisroberts/vagrant,jtopper/vagrant,marxarelli/vagrant,bdwyertech/vagrant,bshurts/vagrant,chrisroberts/vagrant,bdwyertech/vagrant,taliesins/vagrant,justincampbell/vagrant,mwrock/vagrant,marxarelli/vagrant,mitchellh/vagrant,gitebra/vagrant,benh57/vagrant,chrisroberts/vagrant,benh57/vagrant,sni/vagrant,bdwyertech/vagrant,marxarelli/vagrant,gitebra/vagrant