CTFE returns classes
Allow to multiple references to object + Allow to assign enum class object to local variables + Fix 5678
disallow pointers to mutable struct enums and mutable class enums
disallow class enums and thread-local mutable classes and pointers to structs
Fixed this-assignment bug + code style fixes
fix phobos test fail
add comment and small refactoring
Replace of  'magic' number with named constant.
fix Issue 9892 - [ICE] forward reference in enum declaration members causes compiler segfault
fix Issue 5878 - Forward reference in returning superclass from template using is() expression
fix Issue 6795 - ICE(cgcs.c): Incrementing an enum array item
fix Issue 9901 - string return from inner template function error
fix Issue 9899 - struct with pure/nothrow destructor cannot be used as a struct member in pure/nothrow functions
fix Issue 9890 - Alias This + Alias Fields
Fix issue 9445 ICE(interpret.c) calling parameter in CTFE

Typo: should be checking variable has a value, not getting the value
(which will ICE if it has no value).
Merge pull request #1870 from donc/ice9445ctfe

9445 ICE(interpret.c) calling parameter in CTFE
fix Issue 9903 - Broken ddoc in std.typecons and etc.c.sqlite3
Bonus track: fix traits getOverloads+getProtection ICE
Merge pull request #1872 from 9rnsr/fix9903

[REG2.061] Issue 9903 - Broken ddoc in std.typecons and etc.c.sqlite3
Merge pull request #1867 from 9rnsr/fix9890

[REG2.061] Issue 9890 - Alias This + Alias Fields