Support read/write on socket file descriptors.

Add test_websockets_bi_fileops to test using read and write instead
of recv and send respectively. Uses same source files with
USE_FILE_OPS define.
Shared file-descriptor nums for files and sockets.

Also, add FS.createFileHandle(stream) and FS.removeFileHandle
functions for adding to and removing from the streams/file-descriptor
table.
Handle CommonJS exports
Add support for webrtc-based sockets. Moved both backends behind a settings flag, SOCKET_WEBRTC.
Remove unused code.
Default to websockets, since it's more widely supported at the moment.
Rename global io to SocketIO. Updated webrtc library to pull in global name.
Added var for socket deps.
Remove console.log.
Formatting fixes.
Formatting fixes. For some reason, indented preprocessor directives cause compiler failures.
Comments.
Fix missing methods.
Fix style issues.
Don't include webrtc-specific code for websockets builds.
Fixed formatting.
License info for webrtc p2p library.
Added header guards around emscripten.h
prepare for option to split arbitrary nodes in relooper
add testcase for annoying relooper pattern that generates many control flow overheads