Fixes handling of ArrayBuffers in send over data channels

* Fixed bug where I'd used typeof when I should have used instanceof which made data channels not able to receive arraybuffers.
* changed dependencies of webrtc to use the .d.ts files (faster, less redundant compilation)
* Use chunking from array buffers, simplifying data channel code. 
* Simplify sample code little & standardize

TESTED: 
```
grunt
python -m SimpleHTTPServer
```
Then open `build/freedom/samples/freedomchat-chromeapp/main.html` in Chrome, then type the following into the console: 
```
var dc = a.openDataChannel('data');
var p = dc.send({buffer: new ArrayBuffer(10)});
```
Observe that no error, and that the chat window shows `{buffer: {}` which is the pretty print of the ArrayBuffer.
In case you want to, in the console, create another data channel not connected to the UI. I'll add a comment.