core: public_send vs send when merging configs

This fixes the problem when config keys collide with Kernel/Object
methods (private). An example is `exec` which is used in vagrant-exec
plugin.

Compare:

> old.send :exec
ArgumentError: wrong number of arguments (0 for 1+)
> old.public_send :exec
=> #<Vagrant::Config::V2::DummyConfig:0x007fe212cc05c8>
providers/docker: Rename test files for consistency
providers/docker: Container links are an array, not a hash
providers/docker: Add required configs and specs (build is green now)
providers/docker: Ensure long flags are used
Merge pull request #3673 from mitchellh/rename-docker-provider-specs

providers/docker: Rename test files for consistency
Merge pull request #3670 from p0deje/public_send

core: public_send vs send when merging configs
Update CHANGELOG.md
communicators/winrm: good_exit option
communicators/winrm: fix tests
providers/docker: support custom shell properly [GH-3697]
providers/docker: put sync folders in var lib docker [GH-3680]
commands/docker-run: --help works [GH-3698]
providers/docker: make sure command isn't scoped
v1.6.1
core: add more logging to check box outdated
Up version
commands/rdp: support extra args to RDP client [GH-3686]
website/docs: document RDP raw args
providers/docker: build_args [GH-3684]