Support mix of DataHandle and Algorithm instances in input iterables
The original logic only correctly identified a property as 'input like' if all members were DataHandle instances or if all members were Algorithm instances. The new logic allows for a mixture of DataHandle and Algorithm instances. This is consistent with how we treat Algorithms as DataHandles when they have a single (unambiguous) output.
Closes #121 (closed).