Tr letrec values

This pull request is for code review.

This fixes PR 13124 by allowing `letrec-values` clauses that don't refer to the bound variables in the RHS to type-check with synthesized types no matter the order in which they appear.

Sam was concerned about interaction with control operators, but I think it's not an issue here. In order for a control operator to observe the mutation in the `letrec`, it would need to use a reference in the RHS to a `letrec`-bound variable. Since the first pass ignores such clauses, it should be fine.

Note: all the tests pass, except for the 6 unit tests that are still broken from the pkg reorganization.