add `custodian-tidy-all`
racket/port: add a flushing tidy callback for `reencode-output-port`

This change solves a long-standing problem that reencoded output
was not flushed on exit, especially in the case that the
current output port is reencoded.
fix `vector-map!` to not mutate immutable vectors