randomize rebroadcast target
fix(bitswap/notifications) don't force sender to block on receiver

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
style(bitswap/notifications) make it more obvious

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
feat(bitswap/notifications) Subscribe to multiple keys

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
tests(bitswap) share constructor between tests

@whyrusleeping i hope this makes it a bit easier to work with tests

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
fix(merkledag) missing arg

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
refactor(bitswap) move wantlist to loop receive

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
feat(bitswap) implement GetBlocks

@whyrusleeping @jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
fix(bitswap) stop the ticker when the run loop exits

@whyrusleeping

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
tests(bitswap) share code between the two large tests

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>