invoke credit_flow:peer_down on, err, DOWN. *only*
Thus preventing potential leaks and deadlocks.

Also, clean up 'clients' in clear_client, and thus client_terminate,
which was previously missing and thus the source of another potential
leak.
turns out that cleaning up 'clients' in client_terminate is bad
since it breaks clean shutdown/recovery, which relies on the CRefs in
'clients'.
correctness++
Merge bug26066