Fix swapping surgeon mid-operation

See https://code.google.com/p/corsix-th/issues/detail?id=838

Thanks to this fix, one surgeon comes back to replace the picked up one (as he used to), but now washes his hands and restarts the operation. I also added a few changes for the sake of readability (e.g. a setter function to turn on/off the x-ray viewer), which helped me grasping the logic of the room behaviour.
Merge pull request #305 from benckx/issue838_fix