(PUP-4662) Fix :: access to top scope from within top scope
Before this, it was not possible to access top scope variables (e.g.
$::x) from a local scope with top scope as parent if a local scope
shadowed the variable.
The problem is primarily caused by the strange Scope implementation
where Scope represents both itself and all local/ephemeral scopes where
it is ultimately the parent. This has lead to complicated logic inside
scope when looking up variables.
The test that was supposed to test this case was flawed and in realtiy
tested that it did not work!
The fix is unfortunately to add yet another special case.