Implemented Deviator nerve gas missiles as warheads

This does the proposed refactoring from https://github.com/OpenRA/OpenRA/issues/2838 now that the pre-requisites https://github.com/OpenRA/OpenRA/pull/6030 are in place and makes the owner change temporary as in the original. It was permanent, because I lacked the coding skills at the time when I hacked AttackLoyality. 
You are right, I forgot about capturing husks. I don't think your code works though as  `self.ChangeOwner(newOwner);` will also trigger `OnOwnerChanged` and make all owner changes permanent. I also doubt that `changingOwner = true/false;` outside the `World.AddFrameEndTask`  in `public void ChangeOwner(Player newOwner)` will work. My guess is, that this will immediately switch back.