template expansion of `json` in chef-solo

Fixes #362
clean up and retab.
reuse jsonString instead of opaque result var.
provisioner/salt-masterless: join paths properly
builder/amazon: drop private key if debug mode [GH-373]
builder/amazon: output DNS name if debug mode
builder/amazon: chmod debug key so it is ssh-ready
builder/amazon: don't chmod on windows
Merge pull request #364 from mwhooker/362

provisioner/chef-solo: template expansion of `json`
provisioner/chef-solo: properly escape user vars for JSON

/cc @mwhooker - I moved the processing up into Prepare so that any
errors will be shown during a validate pass. Also, I escape some stuff
in keys. Tests moved as well.
Update CHANGELOG
packer: pass tests
packer/plugin: Count number of interrupts atomically
provisioner/chef-solo: code re-org
packer/plugin: Interrupted() to check for i nterrupts
packer: Add Cancel() method to hook
packer: implement Cancel on DispatchHook
packer: reset runningHook when done
packer/rpc: implement hook Cancel
packer/rpc: test concurrent cancel/run