migrate:publish command

See #2232 - I got bored and wanted to try my hand at writing some more advanced commands.

Probably a few mistakes here and there, not all that sure about how I separated the publisher and command's concerns, and not sure if the validation of migration names/checking for duplicates should even be there. Seems to work, anyway.