use data-channel abstraction

data-channel is a module to turn a datachannel (or websocket) like API into a stream. 

Reduces complexity in shoe by moving it into npm.