Trait for the general notion of a DMX port. This enables creation of an “offline” port to slot into place if an API requires an output.
Gather up all of the providers and use them to get listings of all ports they have available. Return them as a vector of names plus opener functions. This function does not check whether or not any of the ports are in use already.