(from discussion on IRC. Currently a global `settxfee` has to be changed to override the fee rate, it would make sense to be able to specify it on a per-transaction basis. This would continue #7518)

```
-*- jonasschnelli thinks we should probably add a optional feerate parameter to fundrawtransaction
<wumpus> jonasschnelli: there isn't one yet?
-*- jonasschnelli looking..
<wumpus> I'm surprised, would be so much better than changing a global
<jonasschnelli> no.. i don't think so. Maybe there is a PR.
<sipa> there is a pr
<jonasschnelli> Hard to keep track of everything. :)
<wumpus> no, the PR does it wrong
```

Regarding implementation:

```
<jonasschnelli> The ugly thing is, that CreateTransaction uses the static DEFAULT_TARGET
<wumpus> passing in an optional feerate would be the obvious thing to do
<jonasschnelli> So, this would require some refactoring.
<sipa> just add a confirmation target to coincontrol
<jonasschnelli> Yes. This sounds good.
<wumpus> right, just slap it into coincontrol
<sipa> wasn't there a PR that added a bunch of options to fundrawtransaction?
<sipa> including that
<jonasschnelli> Not the feerate.
<jonasschnelli> But the rest is merged.
```

private:
    const CKeyStore &keystore;
    std::vector<CKeyID> &vKeys;
public:
    CAffectedKeysVisitor(const CKeyStore &keystoreIn, std::vector<CKeyID> &vKeysIn) : keystore(keystoreIn), vKeys(vKeysIn) {}
    void Process(const CScript &script) {
        txnouttype type;
        std::vector<CTxDestination> vDest;
        int nRequired;
        if (ExtractDestinations(script, type, vDest, nRequired)) {
            BOOST_FOREACH(const CTxDestination &dest, vDest)
                boost::apply_visitor(*this, dest);
        }
    }
    void operator()(const CKeyID &keyId) {
        if (keystore.HaveKey(keyId))
            vKeys.push_back(keyId);
    }
    void operator()(const CScriptID &scriptId) {
        CScript script;
        if (keystore.GetCScript(scriptId, script))
            Process(script);
    }
    void operator()(const CNoDestination &none) {}
};
void CWallet::GetKeyBirthTimes(std::map<CKeyID, int64_t> &mapKeyBirth) const {