More Pythonic VTK wrapping

This is still a behavior change. Given how we create properties, I would expect .output to call GetOutput() on the algorithm, which does not execute. This is the current behavior.

I did not think of returning a tuple of data objects. That’s doable. This currently returns the 2nd output:

select_ports(alg, 1).execute()

but if you want the other input after executing, you have to do:

alg.GetOutputDataObject(0)

Because of the way Python properties work, we cannot do:

alg.output(0)

We can implement that as a custom function if requested though.