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
packer: Add Cancel method to Provisioner
provisioner/*: implement Cancel
common: detect ctrl-c in Provision
packer: implement Cancel in ProvisionHook
Merge branch 'cancel-next'

This implements more robust interrupt handling by propagating cancels
throughout more core Packer components.