Fix build problem with latest Racket release (aka fix the "x undefined" error)

The latest version of Racket has introduced an "undefined" value.
If the undefined value is referenced an exception is thrown.
This affects letrec, which no longer allows the (letrec ((x x)) x) trick that occurs 
in the Whalesong song source, where an undefined value is needed.

A temporary fix is to redefine letrec and letrec-values to use the old semantics.
This PR does just that.

A longer term fix would be to introduce a new type of runtime value to represent
the undefined value.