added mutex manager + mutexes

create on the stack ONLY, will unlock themselves when they fall out of
scope