reduce repetition and sleep time for rwmutex tests
rewrite semaphore tests to reduce test time

- use core.atomic to reduce locking
reduce condition timeout wait
Merge pull request #580 from dawgfoto/reduceTestTime

reduce test time
Thread.sleep for windows: for non-zero timeout, sleep at least 1ms
rewrite rwmutext unittest

- use semaphores to control thread progress
- test different reader/writer scenarios and
  policies
range.empty should not be callable with parenthesis
Make AA.byKey and byValue non-property functions
Make AA.rehash non-property function
Make AA.dup non-property function
Merge pull request #588 from 9rnsr/enforceProp

Make some AA member functions non-property
add explicit thread_term call to replace atexit

- When calling rt_init/rt_term from ELF's .ctors/.dtors section
  atexit runs before rt_term, which causes a crash because the
  thread locks are already destroyed.
reuse rt_init/rt_term in main

- runModuleUnitTests is no longer called from rt_init
  but needs to be called separatly
Merge pull request #587 from dawgfoto/refactorMain

reuse rt_init/rt_term in main
Merge pull request #589 from dawgfoto/threadTermLocks

add explicit thread_term call to replace atexit
Merge pull request #585 from dawgfoto/rewriteRWMutexTest

rewrite rwmutext unittest
perform runtime and module initialization when loading DSOs
add HashTab container
Merge pull request #584 from rainers/sleep_non_zero

Thread.sleep for windows: for non-zero timeout, sleep at least 1ms
Merge pull request #592 from dawgfoto/hashTab

add HashTab container