Fixed memory leak when using '--watch' flag.

We were actually nesting closure environments with each new `getSourceFile`. Instead we now just aggregate the source files into a map.

Fixes #366.
this seems highly unnecessary, esp. as you overwrite 'program' just a few lines later.