Make `Deps.flush({_throwError: true})` more correct.

It will now continue flushing after hitting the first error,
while still throwing that error.
Correct helper return value isolation

- When helpers return SafeStrings, compare their underlying
  strings.
- When helpers return objects (such as for dynamic attributes),
  never isolate. The objects may have been mutated directly.
  AttributeHandler ends up only affecting real changes.