RWLock bug fix + improvement:
- fixed seg fault because thread observer was not removed after the object was released
- fixed lock was not independent (lock data was saved with thread data hence accessible by any lock object)
- added debugging checks