Separate mutex interface from implementation
Improve names of Mutex methods

Remove the implementation bias of semaphore-style method names.