Fix issue 313 & 314

- Add package table in each scope, due to check which package/module name is accessible via imports.
- Renamed/Selective imports no longer create aliases for the introduced names.
- Module Scope Operator with fully qualified name no longer works.
  (Change internal access '.object.foo' to 'object.foo')
Fix existing tests and add new ones for import mechanism
fix Issue 313 - [module] Fully qualified names bypass private imports
fix Issue 314 - [module] Static, renamed, and selective imports are always public
fix class case, merge imports in base class members to derived class
fix compilable/test7491.d
Delay function conflict check until it's actually called
fix Issue 10128 - import statement in base class members should be private by default
Allow accessing package/module FQN with Module Scope Operator

Quote Andrej Mitrovic's comment (https://github.com/D-Programming-Language/dmd/pull/2256#issuecomment-20069143):
----
Module Scope Operator -> The scope word there is significant. It means in the scope of the module, not in the actual module.

Look at the documentation:

$(H3 Module Scope Operator)
    ...
    The leading $(SINGLEQUOTE .) means look up the name at the module scope level.

That last part says everything: look up the name at the module scope level. It doesn't say "look up the symbol defined in the module."
----

Right now `.std.stdio.writeln();` is properly accepted.
Replace bare flags to descriptive enum names
fix Issue 8667 - selective import breaks normal overload resolution
Add "FIXME" comment in ScopeDsymbol::search
[Refactoring] Move code block for readability