Handle failed migrations
Currently if a migration fails to apply, e.g. simple syntax error, the governor will keep retrying to apply it forever. And there's no mechanism to replace a failed migration, i.e. pico.add_migration
returns error if migration with given id already exists. And there's no way to remove a migration.
Further more if a migration fails to apply only to one replicaset, e.g. migration adds constraint that fails only sometimes, there's no way to rollback that migration from the replicasets on which it succeeded.