Declaration::isResult now always returns 0

(storage_class & STCxxx) may overflow if STCxxx is bigger than int.max
fix Issue 9413 - Incorrect modification inside contracts is not detected correctly
fix Issue 9414 - Incorrect modification inside contracts is not detected on virtual function
Fix up error messages for 9414
detab on runnable/testenum.d
fix Issue 9845 - enum value should be able to contain forward references in global scope
fix Issue 9846 - regression of forward references
fix Issue 7719 - enum forward reference error when enum is in braces
fix Issue 9720 - OSX wrong code with -O Illegal instruction
fix Issue 9775 - Can no longer create a const Date in CTFE if the variable is explicitly typed
Improve 'is used as a type' template error

If a template instantiation fails, a spurious 'XXX is used as a type' error
is generated. Suppress it.
Also, when a constraint fails, change the instantiation error into a
supplemental error message.
clarify as suggested in pull #1813
fix Issue 9773 - ref parameter with default string literal should not compile
Merge pull request #1823 from WalterBright/fix9720

fix Issue 9720 - OSX wrong code with -O Illegal instruction
Merge pull request #1819 from WalterBright/refactor

clarify as suggested in pull #1813
Merge pull request #1830 from rainers/fix_vsbuild4

fix build with Visual Studio
Merge pull request #1799 from donc/isusedasatype

Supress spurious 'is used as a type' template error message
fix Issue 9858 - const alias this fails when opAssign is present

Type::makeXXX had unintentionally taken over Type(Struct|Class)::att field.
Merge pull request #1569 from 9rnsr/fix_contracts

Issue 9413 & 9414 - Detect incorrect modification inside contracts
Merge pull request #1821 from 9rnsr/fix9845

Issue 7719,9845,9846 - fix anonymous enum and forward reference problems