Passes donate-multiple and donate-multiple2 tests. Added a lock list of all the locks the thread is currently holding to the thread struct and updated the locking functions appropriately.