Global processing of strings in templates as Go templates

This pull request tracks the implementation of #231. See that issue for more information and comment on this one.

Things that need to be done:

- [x] Common method to verify templates
- [x] Common method to process templates
- [x] Migrating `builder/amazon/ebs` to new system
- [x] Migrating `builder/amazon/chroot` to new system
- [ ] Migrating `builder/amazon/instance` to new system
- [x] Migrating `builder/digitalocean` to new system
- [x] Migrating `builder/virtualbox` to new system
- [x] Migrating `builder/vmware` to new system
- [x] Migrating `provisioner/file` to new system
- [ ] Migrating `provisioner/shell` to new system
- [x] `packer fix` fixer for replacing old-style variables with new-style `{{builder "HTTPIP"}`
- [ ] documentation updates for the new variables
- [ ] documentation updates on configuration templates page describing the new syntax and how it is available everywhere