[Refactoring] Distinguish internal AliasDeclarations for selective/renamed imports

Keep `AliasDeclaration::import` even after resolving forward refs.
Implement proper UFCS name look up

In basic, UFCS name search looks for only symbols in module scope.
If the enclosing scopes have local imports, the imported overload-set and
selected/renamed symbols should also be considered in searching.

In my opinion, UFCS should not see the locally declared symbols (in
statement scope and aggregate member scope). So, currently, this is a
final step for the UFCS implementation.
fix Issue 6185 - Include non-global functions when resolving UFCS
fix Issue 10002 - calling std.algorithm.remove is impure
Merge pull request #1930 from 9rnsr/new_ufcs

Implement proper UFCS name look up
fix Issue 10003 - void* UFCS regression
fix Issue 9971 - eponymous function is not an lvalue
Add new Target hook to retrieve member field alignment.
Remove undefined behavior from test23.

The code tried to load 4 bytes from an 1-3 byte allocation.
LLVM's optimizer actually detects this, marking the entire
result undefined.
Merge pull request #1970 from 9rnsr/fix9971

Issue 9971 - eponymous function is not an lvalue
[Refactoring] Add hasIdentityOpEquals
[Refactoring] Improve __xopEquals implementation

`ref` parameter is same as a pointer in assembler level, so
storing function pointer of `bool __xopEquals(ref const S, ref const S)` to `bool function(const void*, const void*)` is valid.
Improve hasIdentityOpEquals and fix test result of issue 9694.

TypeInfo.equals should throw an Error if the struct doesn't have const objects equality. For example when the struct has only mutable objects equality.
fix ldiv for shared libraries
fix Issue 3789 - Structs members that require non-bitwise comparison not correctly compared

Additionally fix interpret3.d tests, because class object equality is currently not yet supported in CTFE.
fix Issue 10037 - Compiler should not generate opEquals method implicitly
Merge pull request #1969 from WalterBright/fixldiv

fix ldiv for shared libraries
Merge pull request #1967 from ibuclaw/target3

Add new Target hook to retrieve member field alignment.
Merge pull request #1966 from klickverbot/test23-fix

Remove undefined behavior from test23.
Merge pull request #1946 from 9rnsr/fix10003

[REG2.063a] Issue 10003 - void* UFCS regression