Fee fixes

- fix bug in CWallet::CreateTransaction. If dPriorityNeeded is -1, then dPriority >= dPriorityNeeded is always true,
  so we always "break;"
- CFeeRate::GetFee(..) currently returns zero for very small nSatoshisPerK.
  For example, if you set the voluntary fee to 1 satoshi, and the tx has less than 1000 bytes,
  payTxFee.GetFee(nTxBytes) returns zero, this results in CWallet::GetMinimumFee(..) to return
  pool.estimateFee(..) instead of the voluntary fee. So its not possible to set the voluntary fee as low as 1 satoshi.
- Add fallback hard-coded AllowFree to coin control, because CreateTransaction also does.
- Handle voluntary fee case in coin control. nPayFee was set to zero if
  dPriority >= dPriorityNeeded, even in the voluntary fee case. And we need to consider, that
  CreateTransaction pays at least for 1000 bytes in the voluntary fee case.

Just a question, why did -mintxfee move from Testing options to Wallet options?
I dont think we should bother people with this, otherwise we wouldnt need smart fee in the first place.