Simplify task complete

You're right @freider. I however find that code harder to read, since it's not obvious that `output.exists() for output in outputs` becomes an iterator (I first thought it did not :)). But `itertools.imap` is more explicit.