fix: respect ctx on receive

@jbenet

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
style(blockservice) s/Remote/Exchange

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
feat(bitswap) make offline exchange query datastore

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
feat(blockstore) write cache

vendors hashicorp/golang-lru dependency. (Mozilla Public License, version 2.0)

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
feat(core) using WriteCached, cache Puts for exchange and blockservice

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
refactor(bitswap) consolidate HasBlock

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

Conflicts:
	exchange/bitswap/bitswap.go
move public method to top of file

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

License: MIT
Signed-off-by: Brian Tiger Chow <brian@perfmode.com>
Merge pull request #407 from jbenet/bitswap-blockservice-diplomacy

bitswap blockservice diplomacy