Delegated Routing (temporary while dht is shown to be correct)

@jbenet @mappum @whyrusleeping 

TODOs

- [ ] pick a serialization format for provider records. perhaps just proto message
- [ ] ~~extract database `Backend` from `grandcentral.Server`~~ create datastore
- [ ] pass config value (server | client) in from UX
- [ ] pick a peer/address/host for remote routing server
- [ ] finally, make this test pass: https://build.protocol-dev.com/job/ipfs-network-test-add-cat/
http://golang.org/src/cmd/gc/esc.c

Starting at line 159, some really interesting code to read!