In the Bitcoin (0.10.0) source code I'm coming across the term "trickle". Could someone please give short but accurate explanations on following instances and tell what they're used for? 1. `bool fSendTrickle` 2. `bool fTrickleWait` 3. `CNode* pnodeTrickle` ? What is the general idea behind "trickling"?