fix panic in net diag
Merge pull request #481 from jbenet/fix/diag

fix panic in net diag
rewrite of provides to better select peers to send RPCs to

refactor test peer creation to be deterministic and reliable

a bit of cleanup trying to figure out TestGetFailure

add test to verify deterministic peer creation

switch put RPC over to use getClosestPeers

rm 0xDEADC0DE

fix queries not searching peer if its not actually closer
a couple small fixes
dht: fix TestLayeredGet

The test was occasionally passing because:
- it called `putLocal(key, val)`
- GetValue calls `getLocal(key)` optimistically.

cc @whyrusleeping
some better logging and cleanup
address comments from PR
use query for getClosestPeers
Improve readability of getClosestPeers method.

Also remove older useless code.