Mutex -> StaticMutex, MUTEX_INIT
Condvar -> StaticCondvar, CONDVAR_INIT
RwLock -> StaticRwLock, RWLOCK_INIT
Should there be a static initializer for semaphores too (with count = 0?) and an associated static type? (unless they are missing from std::sync on purpose)