Remove ISO from ide1 in stepCleanVMX
packer/cache: Extract cache path calculation to method
packer/cache: Preserve any extension found on keys

This allows us to hand cache paths to any programs that may want to
interpret file extensions in order to behave differently. For
example, VirtualBox may want ISO images to end with .iso.
Revert "builder/virtualbox: Copy ISO because VirtualBox can't recognize"

This reverts commit 688be43811007d33b9c70dec93b43782a4f71c06; instead
of copying the ISO (which can be huge), we have adjusted the cache path
to include the extension of the source file.

Conflicts:

	builder/virtualbox/step_download_iso.go
builder/v*: Include path to output dir in error
Add special keys for backspace, delete and F1-F12
Update changelog
packer: Use strings operations, faster than regexp and easy

/cc @sit
packer: Extension works properly with URLs too

/cc @sit
Update CHANGELOG
Update CHANGELOG
builder/vmware: more flexible ISO removing

/cc @timsutton - This is a bit more flexible.
packer: Properly handle ? in URLs in cache keys

/cc @sit - Found another edge case