message: wallet: Replace nFeeRateNeeded with effective_fee
  Make sure that all fee calculations use the same feerate.
  coin_selection_params.effective_fee is the variable we use for all fee
  calculations, so get rid of remaining nFeeRateNeeded usages and just
  directly set coin_selection_params.effective_fee.
  Does not change behavior.
diff: @@ -2888,17 +2888,7 @@ bool CWallet::CreateTransactionInternal(
  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(FeeEstimateMode::SAT_VB), nFeeRateNeeded.ToString(FeeEstimateMode::SAT_VB));
  - return false;
  - }
  - if (feeCalc.reason == FeeReason::FALLBACK && !m_allow_fallback_fee) {
  - // eventually allow a fallback fee
  - error = _("Fee estimation failed. Fallbackfee is disabled. Wait a few blocks or enable -fallbackfee.");
  - return false;
  - }
  +
  bool pick_new_inputs = true;
  CAmount nValueIn = 0;
  