TXs can be executed by less than the minimum required signatures
In HatsSignerGateBase, `checkTransaction()` is the function called by the Gnosis safe to approve the transaction. Several checks are in place.\\n```\\n        uint256 safeOwnerCount = safe.getOwners().length;\\n             if (safeOwnerCount < minThreshold) {\\n                 revert BelowMinThreshold(minThreshold, safeOwnerCount);\\n        }\\n```\\n\\n```\\n           uint256 validSigCount = countValidSignatures(txHash, signatures, signatures.length / 65);\\n        // revert if there aren't enough valid signatures\\n             if (validSigCount < safe.getThreshold()) {\\n              revert InvalidSigners();\\n                  }\\n```\\n\\nThe first check is that the number of owners registered on the safe is at least minThreshold. The second check is that the number of valid signatures (wearers of relevant hats) is not below the safe's threshold. However, it turns out these requirements are not sufficient. A possible situation is that there are plenty of owners registered, but currently most do not wear a hat. `reconcileSignerCount()` could be called to reduce the safe's threshold to the current validSigCount, which can be below minThreshold. That would make both the first and second check succeed. However, minThreshold is defined to be the smallest number of signers that must come together to make a TX. The result is that a single signer could execute a TX on the safe, if the other signers are not wearers of hats (for example, their toggle has been temporarily set off in the case of multi-hat signer gate.
Add another check in `checkTransaction()`, which states that validSigCount >= minThreshold.
```\\n        uint256 safeOwnerCount = safe.getOwners().length;\\n             if (safeOwnerCount < minThreshold) {\\n                 revert BelowMinThreshold(minThreshold, safeOwnerCount);\\n        }\\n```\\n