Rate-limit a channel to at most `max_outstanding` outstanding
transactions. A transaction becomes outstanding when a message is accepted
on `in_` and remains outstanding until `complete` is pulsed. `in_` is
stalled whenever `max_outstanding` transactions are already outstanding.
`complete` must pulse for exactly one cycle per completed transaction and
must not pulse while zero transactions are outstanding; the module does not
check this. When an input transaction and a `complete` pulse occur on the
same cycle the outstanding count is left unchanged.
Definition at line 21 of file flow.py.