stop using embedded mutexes

This is convenient but it's not worth exposing .Lock/.Unlock/etc., and
obfuscates what's being protected.