fix(exchange) add context to DialPeer
fix(net) pass contexts to dial peer
add do
fix(net) use Do to respect the caller's context
fix(do) child listens on ctx too
fix(bitswap) don't 'go' local function calls
fix(bitswap) always cancel on return
readability(util) Do -> ContextDo

@jbenet
Merge pull request #272 from jbenet/context-dial-peer

add context to DialPeer interface
fix(bitswap) shut down async
feat(Dockerfile) use ENTRYPOINT

Fixes #258

https://github.com/jbenet/go-ipfs/issues/258
feat(init) display peer id in init command

use case:

Just configured and installed a node.

benefits:

1) reduces friction when setting up a new node

2) reveals useful details about the workings of the system. It's the
user's first encounter with her node's identity. The tour can build on
the user's knowledge.

```
ipfs (maybebtc-november) λ. ipfs init -f
initializing ipfs node at /Users/btc/.go-ipfs
generating key pair
peer identity: QmcRbn41Vc2CvbpLYfN36mAWusErKWvAAHbq92LPra2gFT
```
fix(commands/http/client) cast safely
fix(commands/request) cast safely

should be able to look at a function in isolation and prove it won't
panic. if that's not possible, should cast safely.
fix(peer) update latency
doc(peer)