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. 
Ah yes, the FrameEndTask indeed makes that tricky.  You could work around that by wrapping the `changeOwner = false` in its own FrameEndTask that would then run after the OnOwnerChanged callback, but that is certainly a `// HACK`.