refactor let/ec to non-cps

let/ec was used as *return* in c-like lang,
so change the code in loop to *return* null
up through the calling stack w/ some check.

Also re-organized the tests among several files.