Refactor Tool.handle_input result to return list or pairs instead of odict.

This added generality of allowing multiple outputs with the same output name will allow handle_input to execute multiple jobs in subsequent changesets.
Allow running tools on multiple datasets simulatenously.

Like with workflows, but with tools.