fix(identify) Handshake

Two bugs to squash:
1. silent `Handshake` failure
1. Malformed public key

Progress:
* handle subroutine errors
* further specify the type of channel

This PR is to be merged once it is able to address:
https://github.com/jbenet/go-ipfs/issues/61#issuecomment-55481254

@whyrusleeping feel free to push to this branch