Fix "options are only allowed before install arguments" error.

This reverts feb748f488 and 7cd7077467. `bootstrap_options` is
meant for flag options such as `-D`. This is demonstrated in the
example Vagrantfile from the original plugin:
github.com/saltstack/salty-vagrant/blob/develop/example/complete/Vagrantfile
Flag options must be appended to the options string before install
args such as `install_type` and `install_args`.
core: provisioner sentinel should check machine ID
Merge pull request #3005 from ajw0100/fix-salt-options-error

provisioners/salt: Fix "options are only allowed before install arguments" error.
Update CHANGELOG
provisioners/shell: error if invalid encoding [GH-3000]
website/docs: update docs for auto_config [GH-3015]
providers/virtualbox: don't log in trap context
Avoid locking in trap context
core: if can't communicate, force halt right away
communicators/ssh: rescue/show correct error messages
Fix failing tests
core: error-exit machine readable output type for errors [GH-2999]
hosts/linux: escape regular expression for prune NFS exports [GH-2934]
provisioners/salt: error if minion_config missing [GH-2893]
Revert "Merge pull request #2677 from purpleidea/fix_puppet_apply"

This reverts commit 9ac4ec85dd5a3cd4af09430dd5e432b9a5e3da0f, reversing
changes made to 8dbad22d728fe9ba35d7dc3c51ac2e8356c4117f.
provisioners/puppet: append module path  (default) [GH-2677]
Do not to_s the machine id if it is nil
When destroying a machine, the machine id is set to nil, the to_s causes it to be set to empty string.  This can cause inconsistent behavior in anything (such as plugins) that tests the machine id.
Merge pull request #3020 from lheinlen-os/nil_machine_id

core: do not to_s the machine id if it is nil
core: add a test for last PR
added docs for 'file' provisioner