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
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
add missing file sapply.c
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
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