Allow running tools on multiple datasets simulatenously.

Like with workflows, but with tools.
Rebase earlier.
Rebase earlier (multi-run).
Parallel tool execution across dataset collections (UI).
Add tool meta parameter exception.
Parallel tool execution across dataset collections (backend).
Add get_output_name to DefaultToolAction.

Slightly simplfies default execute but more importantly will allow reuse of logic when naming dataset collections.
Introduce execution tracker and helper for working through tool param combinations.
WIP: Build dataset collections from dataset collection runs.