Description
The rule `CleanupAliases` cleans up aliases from logical operators that do not match a whitelist. This whitelist is hardcoded inside the rule which is cumbersome. This PR is to clean that up by making a trait `HasNamedOutput` that will be ignored by `CleanupAliases` and other ops that require aliases to be preserved in the operator should extend it.