Account for sys.modules not to have a __main__ module, various other
minor improvements too.
- Use a context manager to temporarily override the __main__ module.
- Use a context manager to override the stdin when auto-completing.
- Remove `_BPY_MAIN_OWN` constant as the __main__ module is needed.