app: support ipxe variables in ipxe scripts
This uses Template.safe_substitution to support ipxe variables in ipxe boot scripts. ipxe variables are dereferenced the same way as variables in ipxe-boot-server (e.g. "${foo}"), and using safe_substitution allows undefined/unknown variables in the params map to be passed through unmodified. When Template.substitution was used, any unknown (to this app) variables, like for ipxe, were removed from the output.