refac(exchange) move bitswap -> exchange/bitswap

This move is large. Bringing it to your attention so it doesn't catch you by surprise..

main changes:

**Move go-ipfs/bitswap package to go-ipfs/exchange/bitswap**

* Delineates the difference between the generic exchange interface and
  implementations (eg. BitSwap protocol)

  Thus, the bitswap protocol can be refined without having to overthink
  how future exchanges will work. Aspects common to BitSwap and other
  exchanges can be extracted out to the exchange package in piecemeal.

  Future exchange implementations can be placed in sibling packages next
  to exchange/bitswap. (eg. exchange/multilateral)


**refac(exchange) rename exchange.Interface to match golang conventions**

examples:
http://golang.org/pkg/container/heap/#Interface
http://golang.org/pkg/net/#Interface
http://golang.org/pkg/sort/#Interface