Rate-limit free transactions

Figures: Gavin Andresen

Reason for this change: better mitigation of “penny-flooding.”

Behavior before this change: If you ran with the -limitfreerelay boolean arg set, bitcoin would stop relaying free transactions if it got more than 150Kbytes of them in any 10-minute period.

Behavior after this change: Bitcoin will stop relaying free transactions based on an exponential rate-limiting function, where more transactions in a shorter period of time are more likely to be dropped (and the default average is to allow about 150Kbytes over 10 minutes). -limitfreerelay is changed from a boolean to a KBytes/minute rate; default is 15.

Original code from Satoshi— I added a couple of comments and allowed the rate to be set with the -limitefreerelay option.