Add a legacy filter for input and output ports

Changes to input and output ports on apps are previously not supported. Altering
these will break any pre-existing workflows. This commit adds support for legacy
port definitions which, in combination with legacy_launchers previously added, ensure
that modifications to tools will not break legacy workflows.

Once loaded the workflows can be used as is or saved to update.