Make emscripten::val compatible with fastcomp/asm.js

The "C++ talking directly with JavaScript objects" half of embind works in fastcomp/asm.js now.

Instead of reinterpret_casting function pointers into JavaScript functions that could take more arguments, it uses variadic templates to pack up the argument wire types into a vararg-like structure on the stack which the JavaScript side can then parse out.

cc @waywardmonkeys 
cc @juj