feat(util:context) add error logging to context

This commit...

is a second attempt at: https://github.com/jbenet/go-ipfs/pull/68

partially addresses: https://github.com/jbenet/go-ipfs/issues/66

is the result of discussion at:

    https://gist.github.com/perfmode/f2951c1ed3a02c484d0b
Merge branch 'ipfs-context-2'
feat(bitswap:network) propagate errors up the stack

Rather than pushing errors back down to lower layers, propagate the
errors upward.

This commit adds a `ReceiveError` method to BitSwap's network receiver.

Still TODO: rm the error return value from:

    net.service.handler.HandleMessage

This is inspired by delegation patterns in found in the wild.
feat(net:service, routing) remove error return value
Merge branch 'feat/network-error-propagation-1'
Implement XDG base directory specification