Remove virtual keyword.

It was added in GitHub pull request #2895, but since fell
into disfavor compared to a more general way of negating
storage classes.
[Refactoring] Separate test case for issue 3882 and relates
Merge pull request #3663 from klickverbot/remove-virtual

Remove virtual keyword.
[Refactoring] TypeFunction::purityLevel
fix Issue 12909 - [AA] Function is incorrectly inferred as strongly pure for associative array with key of non-mutable array or pointer as argument
fix Issue 12910 - [AA] `rehash` is incorrectly inferred as strongly pure for some associative arrays
Merge pull request #3667 from 9rnsr/fix12909

Issue 12909 & 12910 - fix purity level calculation for AA parameter
fix Issue 12907 - [ICE] Assertion failure '0' in 'mangle.c' when using `auto` return type with lambda with dereferanced `function` call