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).

### Before:
```ruby
# no existing migrations
$ rails d model Post
      invoke  active_record
      remove    /Users/gert/migration/templates/create_table_migration.rb
      remove    app/models/post.rb
      invoke    test_unit
      remove      test/models/post_test.rb
      remove      test/fixtures/posts.yml
$ rails d migration shipit
      invoke  active_record
      remove    migration.rb
```
### After:
```ruby
$ rails d model Post
      invoke  active_record
      remove    app/models/post.rb
      invoke    test_unit
      remove      test/models/post_test.rb
      remove      test/fixtures/posts.yml
$ rails d migration shipit
      invoke  active_record
```

Related issues: #12674, #13014, #13594

Still some stuff todo (see below) but I'm curious whether people think it's a possible solution.
/cc @rafaelfranca @senny

### TODO:
- [x] move tests over
- [x] add CHANGELOG
- [x] squash/rebase