Use a with block to control export (public/private/__all__)

There is currently a pole running about visibility signalling Poll: Public/internal handling — what behavior do we want? . There are also plenty of discussions PEP 842 postmortem: how do we protect the standard library? - #44 by danielhollas , PEP 842, PEP 843, PEP 844, and using two namespaces.