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.