[feature] [update] [linux] add condition variables

This implies changing the implementaiton of mutex to be of
pthread_mutex_t rather than sem_t.  This is actually good!

Signed-off-by: Shahbaz Youssefi <ShabbyX@gmail.com>