Improve docs about reusing background migrations
Description
Currently we mostly do not reuse background migrations. Developers are creating their own migrations, and usually it is enough. However when someone wants to reuse someone else's background migration, things can become tricky, because after we actually schedule a migration, we would like to clean it up, and things can go south from there.
Currently when we schedule background migration MyMigration we need to clean it up later with Gitlab::BackgroundMigration.steal('MyMigration').
If it happens that someone wants to reuse MyMigration it is not explicit which scheduled background migration is going to bve cleaned up.
Proposal
New proposal
Document how to reuse background migrations properly, by creating a subclass or just cleaning it up without concerns if applicable.
Old proposal
Make it possible to add arguments to background migration class. Something like:
BackgroundMigrationWorker.perform_in(delay, 'MyMigration[:my-something]', args)
# and
Gitlab::BackgroundMigration.steal('MyMigration[:my-something]')