Allow specifying one-time script for new templates
### Problem to solve
Some templates would benefit from the ability to run a CI job once as part of the template creation. This job could do any number of creative things, but as an example there are many frameworks out there, such as .NET Core, for which you can create a template by running a command like `dotnet new console -o myApp`. The way to handle this in a template at the moment is to run that command and then check in the result. This is less than ideal for a couple reasons:
- The command may generate a lot of boilerplate with the app name or other details that would then need to be edited
- The state of the boilerplate will track what's checked in rather than whatever the latest command generates
This would be even nicer in combination with https://gitlab.com/gitlab-org/gitlab-ce/issues/58197 so that you can prompt for environment variables that will then be available on the one-time job run.
### Target audience
- Sasha, Software Developer, https://design.gitlab.com/research/personas#persona-sasha
### Further details
More powerful and easier to use templates
### Proposal
To be determined
### Documentation
<!-- See the Feature Change Documentation Workflow https://docs.gitlab.com/ee/development/documentation/feature-change-workflow.html
Add all known Documentation Requirements here, per https://docs.gitlab.com/ee/development/documentation/feature-change-workflow.html#documentation-requirements -->
### What does success look like, and how can we measure that?
<!-- Define both the success metrics and acceptance criteria. Note that success metrics indicate the desired business outcomes, while acceptance criteria indicate when the solution is working correctly. If there is no way to measure success, link to an issue that will implement a way to measure this. -->
To be determined
### Links / references
issue