feat(blockstore): implement blockstore
style(blockstore) move to top-level
refac(bitswap) use blockstore
refac(bitswap): privatize bitswap
chore(util) rm unused DatastoreKey method
refac(bitswap) privatize strategies

temporarily. until bitswap is refactored
refac(bitswap) privatize ledger

temporarily. at least until refactor is complete
refac(bitswap) define Directory interface