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.
One could even imagine filtering out the changed files from this list, and I'll totally do that if everyone else feels it would be apropos.