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.
* Added symlink support.
Added a symlink testcase.
fix SDL.keyboardState size to add safe buffer zone
use 64-bit alignment for double writes in le32
use full alignment in varargs
check sanity later in test runner, so we can know env settings, and do not needless tear down le32 stuff
ensure floats in varargs
guard against exceptions in connect(), which can happen due to e.g. security violations for websockets
fix test_firstrun
fix sanity.test_emcc
fixes strcat so that it returns the correct value

It should return the "dest" pointer that was passed in.
test_strings has been updated with a test for the correct behavior.
fix test_runtimelink
Add a select_const for selecting the const method implementation if there are only two.

Conflicts:
	tests/embind/embind_test.cpp
snip dead code
namespace the binding struct a bit more
Snip some dead code
checkpoint object handle composition
Add isAliasOf for seeing if two embind handles point to the same underlying object.

Conflicts:
	tests/embind/embind_test.cpp