Adding common/condition_variable.h and reimplementing semaphore, onoff_switch and state with abstracted condition_variable and mutex classes.
Renaming switch.h -> onoff_switch.h
Renaming compat_{hash_map,unique_ptr}.h -> compat/{hash_map,unique_ptr}.h