Throw errors when `_throwErrors` is passed to Deps.flush.

The default behavior is still to log them, but at least for tests, and perhaps
many other cases it's better for the user to throw errors. This makes it easier
to debug and test various cases.
Make `Deps.flush({_throwError: true})` more correct.

It will now continue flushing after hitting the first error,
while still throwing that error.
Clarify comments
aesthetic improvements
more aesthetic improvements
eliminate now unnecessary try/catch block
Fix due to merge