fix(blockstore, bitswap) enforce threadsafety in blockstore

fixes data race detected in a testnet test
fix(bitswap) move mutex up to strategy from ledger

addresses concurrent access in bitswap session
Merge pull request #198 from jbenet/fix/bitswap-races

fix(bitswap) data races
rewrite findpeer and other dht tweaks
use my go-logging fork

until https://github.com/op/go-logging/pull/30 is merged
go-vet friendly codebase

- distinguish log.Error and log.Errorf functions
- Initialize structs with field names
- A bit of unreachable code (defers)
Merge pull request #203 from jbenet/govet

go-vet friendly code
refactor(dht/pb) move proto to pb package
fix(bitswap) rm todo
style(bitswap) import
Merge pull request #205 from jbenet/fix/move_proto_dht

redux: refactor(dht/pb) move proto to pb package
Add test-lib.sh for our shell test framework

Our test framework is based on Sharness.
So the first thing to do is to source it.
Add t0010-basic-commands.sh

This checks a little bit the installation and some
basic commands.

You can run it like that:

$ cd test
$ ./t0010-basic-commands.sh
 ok 1 - current dir is writable
 ok 2 - ipfs version succeeds
 ok 3 - ipfs version output looks good
 ok 4 - ipfs help succeeds
 ok 5 - ipfs help output looks good
 # passed all 5 test(s)
 1..5
Move Sharness config checks into test-sharness-config.sh

This way we can easily reuse the checks in
test-sharness-config.sh.
Add test-aggregate-results.sh

This script aggregates test results using Sharness.
Add test/Makefile to run the test scripts

You can use it like this to launch all the
test scripts in order:

$ cd test
$ make
 rm -r test-results
 *** t0010-basic-commands.sh ***
 ok 1 - current dir is writable
 ok 2 - ipfs version succeeds
 ok 3 - ipfs version output looks good
 ok 4 - ipfs help succeeds
 ok 5 - ipfs help output looks good
 # passed all 5 test(s)
 1..5
 ./test-aggregate-results.sh
 fixed   0
 success 5
 failed  0
 broken  0
 total   5

Or you can just run one test like this:

$ make t0010-basic-commands.sh
 *** t0010-basic-commands.sh ***
 ok 1 - current dir is writable
 ok 2 - ipfs version succeeds
 ok 3 - ipfs version output looks good
 ok 4 - ipfs help succeeds
 ok 5 - ipfs help output looks good
 # passed all 5 test(s)
 1..5
Merge pull request #206 from chriscool/sharness3

Use Sharness as our shell test framework, version 3
add context to blockservice Get
add in dag removal
logging, logging, and some minor logging