Low: scheduler: distinguish unrunnable from migration unrunnable in displays
Previously, clearing the runnable or migrate_runnable flags from an action
caused a reason of "unrunnable <action>" to be displayed, and migrate_runnable
was the only flag that would overwrite an exiting reason if cleared.
The overwrite behavior was never relevant in existing regression tests, and
showing unmigrateable tasks as "unrunnable" was a bit confusing.
Drop the overwrite behavior, and distinguish "unrunnable" from "unmigrateable".
This slightly improves the understandability.