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.
You're right; releasing doesn't seem to have a noticeable effect on memory footprint from what I can tell anyway.