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:

[ ] Common method to verify templates
[ ] Common method to process templates
[ ] Migrating all builders to the new syntax
[ ] `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