fix Issue 9091 - Using __traits(getMember) on template argument fails inside member function

Use ThisExp instead of VarExp to avoid interpretation on template arguments.
If a VarExp requires right 'this' but doesn't have it, make it an error

And, distinguish typeof(Type.var) and typeof({ auto x = Type.var; }) by sc->intypeof == 1 or 2.
Use ScopeExp for correct semantic path

Additional fix for Issue 3775 - Segfault(cast.c): casting no-parameter template function using property syntax

Allow using Type.templatefunc as a property
Add implicit translation from Type.aliasthis.member to typeof(Type.aliasthis).member

And, add some test cases for 'alias this'.
Add backout process from VarExp to DsymbolExp in TypeXXX::resolve
fix hasThis for inside mixin
fix Issue 1680 - static struct constructor overloaded with method prevents compilation in inner function
Allow exactly *unreal* VarExp to minimize code breaking
Fix std.typecons breaking

Add test cases for accessing 'this' from constraint and DeclDefs scope
fix Issue 9617 - ulong.max is wrongly accepted by smaller signed parameter
fix Issue 9619 - Failed struct field typeof in inner function
Merge pull request #1704 from 9rnsr/fix9617

Issue 9617 - ulong.max is wrongly accepted by smaller signed parameter
Merge pull request #1687 from 9rnsr/fixRightThis

Fix right this check
[Refactoring] Add Declaration::isField()
Merge pull request #1706 from 9rnsr/add_isField

[trivial][Refactoring] Add Declaration::isField()