Ensure that we assign discriminators for closures from top-level macros
In top-level code, we were incorrectly pulling closure discriminators
from TopLevelCodeDecls, not from the enclosing source file, which could
lead to the same discriminators being assigned to different closures that
come from macro expansions at the top level. Hilarity ensures, yet I am
not amused.
Adjust the DeclContext appropriately when computing discriminators.
Fixes rdar://123836908.