fix for Issue 11543 - multiple definition of std.regex with shared library

- Detect copy relocated ModuleInfos when checking for
  conflicting module definitions.
Add enhanced unittest runtime information

The new information is available from the 'unitTests' member of
every ModuleInfo.
'unitTests' is an array of __UnitTest structs. The __UnitTest
struct provides the unittest function, location etc.
Use new unittest format in default runner
Support named unittests
Replace size and info caches with a pool lookup cache and remove redundant pool searches.
Merge pull request #801 from Safety0ff/gcpoolsearch2

GC: Remove redundant pool searches
Merge pull request #782 from jpf91/newUnittest

Enhanced unittest support
yieldAndThrow takes a Throwable, there's no reason for call to return an Object
fix property enforcement
fix import declarations
Merge pull request #805 from 9rnsr/enforceProp

fix property enforcement
Fix locking in GC.rootIter and GC.rangeIter
Merge pull request #806 from 9rnsr/fix12359

fix import declarations
Merge pull request #807 from Safety0ff/gciterlock

Fix locking in GC.rootIter and GC.rangeIter
applying the same change to thread.di
Merge pull request #804 from complexmath/fixCallReturnType

Change Fiber.call to return a Throwable
fix test runner

- fallback to run the single unittest per module
Merge pull request #808 from MartinNowak/fixTestRunner

fix test runner
fix Issue 12800 - Fibers are broken on Win64

Win64 version of the context switch used the wrong registers for parameters
activate Win64 unittests for Fibers