BidirectionalSetMultimap should extend SetMultimap.
Implicit dependencies are also taken into account when creating instruction permutations. If any implicit dependency failed to produce any results then the task also fails.
Added extra debug logging for unevaluated tasks.