Use case: **decouple keys from the wallet** (via importing scripts and fundrawtransaction with watch-only).

**Problem:** multisig inputs are flagged as non-spendable even if importing both the multisig P2SH `scriptPubKey` and the `redeemScript` (via importmulti).

The current `isSolveable()` logic calls `GetPubKey()` and only flags them as solvable if the pubkeys are **in the wallet**.

**Expected behaviour:**
* multisig Inputs should be flagged as solvable (and therefore usable via fundrawtransaction) when importing the P2(W)SH `scriptPubKey` and the `redeemScripts`

Current workaround:
* Call importpubkey for all pubkeys used in the multisig (redeemScript). importpubkey derives all coming scripts (including a raw P2PK script). The P2PK scripts make the wallet store the pubkey and flag the multisig script solvable.
{
    
    if (!input.final_script_sig.empty() || !input.final_script_witness.IsNull()) {
        return true;
    }
    
    SignatureData sigdata;
    input.FillSignatureData(sigdata);
    
    bool require_witness_sig = false;
    CTxOut utxo;
    if (input.non_witness_utxo) {
        
        if (input.non_witness_utxo->GetHash() != tx.vin[index].prevout.hash) return false;
        
        
        
        
        if (!input.witness_utxo.IsNull() && input.non_witness_utxo->vout[tx.vin[index].prevout.n] != input.witness_utxo) return false;
        utxo = input.non_witness_utxo->vout[tx.vin[index].prevout.n];
    } else if (!input.witness_utxo.IsNull()) {
        utxo = input.witness_utxo;