Do not descend into Let bindings multiple times during desugaring

Resolves #730 

The issue here is subtle. Basically it was a problem with the recursion pattern we were using, which would cause some of the `Let` bindings to be handled twice, resulting in them being filtered out.

The `StringLiteral` part is a bit of a hack, I'll admit, but a simple `undefined` will not work, since `go` is strict in its argument.