message: wallet: error if an explicit fee rate was given but the needed fee rate differed
  This avoids cases where a user requests a fee rate below the minimum and is silently overruled by the wallet.
diff: @@ -2789,6 +2789,12 @@ bool CWallet::CreateTransaction(const std::vector<CRecipient>& vecSend, CTransac
  bool fNewFees = IsProtocolV07(txNew.nTime);
  nFeeRet = (fNewFees ? MIN_TX_FEE : MIN_TX_FEE_PREV7);
  + // Do not, ever, assume that it's fine to change the fee rate if the user has explicitly
  + // provided one
  + if (coin_control.m_feerate && nFeeRateNeeded > *coin_control.m_feerate) {
  + error = strprintf(_("Fee rate (%s) is lower than the minimum fee rate setting (%s)"), coin_control.m_feerate->ToString(), nFeeRateNeeded.ToString());
  + return false;
  + }
  bool pick_new_inputs = true;
  CAmount nValueIn = 0;
  