Don't expose overrides directly to provisioners

The overrides are processed, so that the provisioner only sees the
appropriate sub-settings, so the provisioner does not need the raw
overrides.

If we leave the top-level overrides object in the provisioner
configuration, then it will be rejected as an unknown configuration
key.
packer: Add failing test for [GH-181] to fix
Merge pull request #181 from qur/overrides

packer: Delete "override" key for config passed to provisioners
packer: move constants into a single const()
packer: Make builder type available in configs [GH-154]
provisioner/shell: make build name and builder type env vars [GH-154]
website: document new shell env vars
builder/common: add common StepConnectSSH for builders
builder/amazonebs: switch to common SSH connect step
builder/common: if cancel during SSH, cancel the attempts
builder/digitalocean: use common connect ssh
builder/virtualbox: use common SSH connect step
builder/vmware: convert to cmmon ssh step
CHANGELOG
Merge branch 'common-ssh'

This unifies all the builders so that they all wait for SSH using a common
step available in builder/common. This common step has the best practices of
every previously unique step, such as retrying SSH handshakes, limiting
the number of SSH handshakes, timeouts, and so on.
builder/amazon/ebs: rename to amazon/ebs in order to support others
builder/common: add StepProvision
builder/*: convert to common StepProvision
builder/vmware: error if guest IP is blank [GH-189]
builder/common: only count handshake error if auth tried