This patch changes the order that mutexes are acquired in SBProcess such that the target API mutex is now always acquired before the public run lock mutex is acquired.
This fixes a deadlock in LLDB when calling SBProcess::Kill() while calling e.g. SBProcess::GetThreadByID(): Kill takes the target API mutex, then waits for the private state thread to exit, which tries to lock the public run lock mutex, but it's already being held by GetThreadByID, which is waiting in turn for the target API mutex.