(RE-1533) Support mappable templates

With libraries that wrap around packaging, it would be useful for the
templates section of the project_data to allow for a target for
templates other than the template with the extension taken off. This
commit implements that by allowing the template to be a hash of source
and target in addition to a string. The source is the source template
and the target is the destination of the evaluated template.