Locks the lock by sleeping until the lock is unlocked if it's currently locked.
impl<'a> Lock { fn lock(&'a self) -> LockGuard<'a> }
Returns a lock guard.