Correct autoconfigure values

Without this commit, the `autoconfigure` setting does not get correctly
set to a boolean for use in the provisioner. If the `autoconfigure`
setting does not get explicitly set to `false` then it is left as
`Vagrant::Config::V2::UNSET_VALUE` which is considered to be true
in Ruby. Also without this commit `autoconfigure` defaults to true
if it isn't given an explicit value, regardless wether or not any host
entries have been added. This goes directly against the behavior that
is suggested in the current documentation.

This commit only defaults to `true` when neither `autoconfigure` is
given a value or hosts are explicitly added. When hosts are added and
`autoconfigure` is not explicitly set, `autoconfigure` will default to
`false`.
Let `autoconfigure` and `add_host` work together

Without this commit the provisioner can either add the custom hosts
added in the provisioner config, or the hosts discovered automatically
when the `autoconfigure` setting is `true`. It can never add both at the
same time.

This commit changes the provisioner to only apply the auto-configured
hosts when the `autoconfigure` setting is `true`. It will now always
apply the added `hosts` array from the provisioner config. The provisioner
config defaults to an empty array of added hosts if
`VagrantHosts::Config#add_host` is never used. Since the config `hosts`
array is empty in default cases, it is always safe to apply.
Correct mistake in 8a0c9f7

This commit corrects the provisioner config to actually enable the
behavior described in 8a0c9f7.
Merge pull request #8 from trlinkin/fix_the_things

Allow `autoconfigure` and `add_host` be used at the same time