fix Issue 8366 - Overriding const member function in conjunction with mutable overload causes a strange error

We MUST kill attribute inference with const. To implement it correctly without breaking overriding and overloading features, re-scanning and arrangement of vtbl entries is needed in the end of Classdeclaration::semantic, it will decrease compile speed.
I think that is a big drawbacks than the benefit.
Add check for circular "alias this" type dependency.
Add check recursion in typeMerge
Fix SliceExp::semantic, and (Una|Array|Bin|BinAssign)Exp::op_overload
Fix CallExp and AssignExp
Fix inferAggregate
Fix checkToBoolean
Add comment
Reduce and pack in TypeStruct/TypeClass field, and use enum for readability.
fix Issue 8589 - Incorrect conversion of function returning `typeof(null)` to function returning an array
fix Issue 6652 - 3. Change modifying non ref variable allowed and not affect to loop
Fixes Issue 5140 - Implement __FUNCTION__, __PRETTY_FUNCTION__, and
__MODULE__ feature.
workaround for OSX's ld64-77 linker bug
Merge pull request #1119 from 9rnsr/fix8589

Issue 8589 - Incorrect conversion of function returning `typeof(null)` to function returning an array
Merge pull request #1042 from 9rnsr/fix8366

Issue 8366 - Overriding const member function in conjunction with mutable overload causes a strange error
Merge pull request #1028 from 9rnsr/fix_aliasthis

Issue 7437,7980,8053 - Partial fix for stack overflow with recursive alias this
fix Issue 9658 - Setting pre-initialized field should be allowed in qualified constructor.
Merge pull request #1725 from 9rnsr/fix9658

Issue 9658 - Setting pre-initialized field should be allowed in qualified constructor.
Merge pull request #1462 from AndrejMitrovic/Fix5140

[enh] Issue 5140 - Implement __FUNCTION__, __PRETTY_FUNCTION__ and __MODULE__
Merge pull request #1010 from 9rnsr/fix6652_3

fix Issue 6652 - 3. Change modifying non ref variable allowed and not affect to loop