message: rpc/util: multisig: only check redeemScript size is <= 520 for P2SH
  This increase the maximum number of pubkeys to 20 (valid in P2WSH and
  P2SH-P2WSH) and only checks the redeemScript doesn't exceed
  MAX_SCRIPT_ELEMENT_SIZE for P2SH, as this checked is removed under
  Segwit context.
diff: @@ -231,16 +231,12 @@ CTxDestination AddAndGetMultisigDestination(const int required, const std::vecto
  if ((int)pubkeys.size() < required) {
  throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("not enough keys supplied (got %u keys, but need at least %d to redeem)", pubkeys.size(), required));
  }
  - if (pubkeys.size() > 16) {
  - throw JSONRPCError(RPC_INVALID_PARAMETER, "Number of keys involved in the multisignature address creation > 16\nReduce the number");
  + if (pubkeys.size() > MAX_PUBKEYS_PER_MULTISIG) {
  + throw JSONRPCError(RPC_INVALID_PARAMETER, strprintf("Number of keys involved in the multisignature address creation > %d\nReduce the number", MAX_PUBKEYS_PER_MULTISIG));
  }
  script_out = GetScriptForMultisig(required, pubkeys);
  - if (script_out.size() > MAX_SCRIPT_ELEMENT_SIZE) {
  - throw JSONRPCError(RPC_INVALID_PARAMETER, (strprintf("redeemScript exceeds size limit: %d > %d", script_out.size(), MAX_SCRIPT_ELEMENT_SIZE)));
  - }
  -
  // Check if any keys are uncompressed. If so, the type is legacy
  for (const CPubKey& pk : pubkeys) {
  if (!pk.IsCompressed()) {
  @@ -249,6 +245,10 @@ CTxDestination AddAndGetMultisigDestination(const int required, const std::vecto
  }
  }
  + if (type == OutputType::LEGACY && script_out.size() > MAX_SCRIPT_ELEMENT_SIZE) {
  + throw JSONRPCError(RPC_INVALID_PARAMETER, (strprintf("redeemScript exceeds size limit: %d > %d", script_out.size(), MAX_SCRIPT_ELEMENT_SIZE)));
  + }
  +
  // Make the address
  CTxDestination dest = AddAndGetDestinationForScript(keystore, script_out, type);
  