fix Issue 9415 - delegate inference should make function literal impure
Revert 9rnsr/fix9230 and 9rnsr/fix8408

- Revert "Merge pull request #1418 from 9rnsr/fix9230"

  This reverts commit c42d35bcf92cd26c2b83c3d2e5fc21e5a0f2d296, reversing
  changes made to 9f2d9eafacd75c22ea7a705151ee2a8e20a1638c.

- Revert "Merge pull request #1110 from 9rnsr/fix8408"

  This reverts commit b6a809346a43c7fbf350bd4181d350dd9b2cd4e6, reversing
  changes made to 3b061322300c5b7a39f1b5c5f76016a4d9906899.
Remove unused code which will never be activated
fix Issue 8998 - 'inout pure' returns immutable, which in reality is mutable

By fixing issue 7769 (relax inout rule), we cannot assume a function with inout parameters as PUREstrong, because the return type may not have any inout indirections.
Separate returned value isolation check from purity level calculation
Fixes issue with variadic functions on win64 if the argument before the variadic function is > 8 byte (issue 9495)
Merge remote-tracking branch 'remotes/upstream/master' into pull9495

Conflicts:
	src/func.c
-Added test case for bug 9495
-Using Target::ptrsize instead of hardcoded constant
test9495 should not be compiled with -release
Fixes Issue 9480 - Template name should be stripped of parameters in JSON output.
Merge pull request #1657 from Ingrater/pull9495

9495: Fixes issue with variadic functions on win64
Merge pull request #1644 from AndrejMitrovic/Fix9480

Issue 9480 - Template name should be stripped of parameters in JSON output
Merge pull request #1572 from 9rnsr/fix9415

Issue 9415 - delegate inference should make function literal impure
Merge pull request #1519 from 9rnsr/fix_purity

Refactoring/improvement of issue 8408, and additionally fixing Issue 8998