Owners can be swapped even though they still wear their signer hats
`HatsSignerGateBase` does not check for a change of owners post-flight. This allows a group of actors to collude and replace opposing signers with cooperating signers, even though the replaced signers still wear their signer hats.\\nThe `HatsSignerGateBase` performs various checks to prevent a multisig transaction to tamper with certain variables. Something that is currently not checked for in `checkAfterExecution` is a change of owners. A colluding group of malicious signers could abuse this to perform swaps of safe owners by using a delegate call to a corresponding malicious contract. This would bypass the requirement of only being able to replace an owner if he does not wear his signer hat anymore as used in _swapSigner:\\n```\\nfor (uint256 i; i < _ownerCount - 1;) {\\n    ownerToCheck = _owners[i];\\n\\n    if (!isValidSigner(ownerToCheck)) {\\n        // prep the swap\\n        data = abi.encodeWithSignature(\\n            "swapOwner(address,address,address)",\\n            // rest of code\\n```\\n
Issue Owners can be swapped even though they still wear their signer hats\\nPerform a pre- and post-flight comparison on the safe owners, analogous to what is currently done with the modules.
bypass restrictions and perform action that should be disallowed.
```\\nfor (uint256 i; i < _ownerCount - 1;) {\\n    ownerToCheck = _owners[i];\\n\\n    if (!isValidSigner(ownerToCheck)) {\\n        // prep the swap\\n        data = abi.encodeWithSignature(\\n            "swapOwner(address,address,address)",\\n            // rest of code\\n```\\n