Add CreateMigration action

This new action isolates the logic whether to (over-)write migration and
what is shown to the user. It's modelled after Thor's CreateFile-action.

This solves the issue that removing a non-existing migration, tried to
remove the template-path (#13588).

Related issues: #12674, #13014

Still some stuff todo (see below) but I'm curious whether people think is a possible solution.
/cc @rafaelfranca @senny

TODO:
- [ ] move tests over
- [ ] add CHANGELOG
- [ ] quash/rebase