update to freedom 2.1

Finally works! Many things had to change, like explicitly creating data channels.
- better peerconnection / signalling channel interactions
- promises for the data channels
- more communications interface types
- after extensive debugging, maybe we should try the freedom transport interface - see (https://github.com/UWNetworksLab/freedom/issues/42)

Tested: end-to-end