message: [Performance] AutocombineDust is called less often
  Autocombine to the threshold and not above
  Autocombine now start later
  >wait for 5mn old block or younger
diff: @@ -3991,11 +3991,11 @@ void CWallet::AutoZeromint()
  void CWallet::AutoCombineDust()
  {
  - if (IsInitialBlockDownload() || IsLocked()) {
  + if (chainActive.Tip()->nTime < (GetAdjustedTime() - 300) || IsLocked()) {
  return;
  }
  - map<CBitcoinAddress, vector<COutput> > mapCoinsByAddress = AvailableCoinsByAddress(true, 0);
  + map<CBitcoinAddress, vector<COutput> > mapCoinsByAddress = AvailableCoinsByAddress(true, nAutoCombineThreshold * COIN);
  //coins are sectioned by address. This combination code only wants to combine inputs that belong to the same address
  for (map<CBitcoinAddress, vector<COutput> >::iterator it = mapCoinsByAddress.begin(); it != mapCoinsByAddress.end(); it++) {
  @@ -4014,13 +4014,15 @@ void CWallet::AutoCombineDust()
  if (out.tx->IsCoinStake() && out.tx->GetDepthInMainChain() < COINBASE_MATURITY + 1)
  continue;
  - if (out.Value() > nAutoCombineThreshold * COIN)
  - continue;
  -
  COutPoint outpt(out.tx->GetHash(), out.i);
  coinControl->Select(outpt);
  vRewardCoins.push_back(out);
  nTotalRewardsValue += out.Value();
  +
  + // Combine to the threshold and not way above
  + if (nTotalRewardsValue > nAutoCombineThreshold * COIN)
  + break;
  +
  // Around 180 bytes per input. We use 190 to be certain
  txSizeEstimate += 190;
  if (txSizeEstimate >= MAX_STANDARD_TX_SIZE - 200)
  @@ -4055,6 +4057,10 @@ void CWallet::AutoCombineDust()
  continue;
  }
  + //we don't combine below the threshold unless the fees are 0 to avoid paying fees over fees over fees
  + if (vecSend[0].second < nAutoCombineThreshold * COIN && nFeeRet > 0)
  + continue;
  +
  if (!CommitTransaction(wtx, keyChange)) {
  LogPrintf("AutoCombineDust transaction commit failed\n");
  continue;
  