Some style cleanups.

Mainly reogranize the code + exports + docs of the additional list
convenience functions.

Also, add a custom printer to a "running" struct in
`racket/private/promise', so there's a sensible output if the value
happens to leak outside of a promise (eg, when debugging).
Add `permutations' and `in-permutations'.
Temporary hack: avoid `permutations' clash until its renamed in `math'.

(Should undo this when the rename is done.)
Make the stop value for `in-producer' optional.

There are many cases where you just want to use some other tool like
`#:break' to stop the iteration, so no need to make up a bogus stop
value and no need to spend time checking it.
Fix inclusion of "keep-dirs.rktd".

The file should be considered as source even though it's in the "doc"
directory.
Combine the two zo-size tests into one.

Also beautify the output.
Updated sizes of repackaged source distributions.