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
Merge pull request #585 from dawgfoto/rewriteRWMutexTest

rewrite rwmutext unittest