This diff adds support for supplying ins and outs as dictionary arguments
unclear if inheritance is the way to go with In and Out once there is this behavior difference. Might be best to have a simple value object and interpret it in to the underlying def, maybe with a scheme like 
Getting the type inference to work on MultiOut might inform which path is preferable
would still like to see the types that the inputs & outputs have resolved with here in these tests
input and output types are Any, unfortunately
If we're going with the pure dict approach then no - but if we're not sure if we want to support dicts or lists, I think it makes sense to keep it for now.