Preserve source location when flattening lambdas
Fix source location for top-level expressions

The ModuleBodyExtractor refactor broke locating top-level exceptions.
Fix and add a very simple unit test to make sure certain expression
types are located correctly.