Make no-prefixing of library functions work.

This makes it so that functions in JS library files can start
with '$' to signal that they shouldn't be prefixed with an '_' and
be visible to user code.

This is used in the conversion of emval and embind to JS library
format so that their internals are not exposed inappropriately.
Convert embind/emval to JS library format.
Embind: Replace slow introspecting clone() with one that copies known pointer internals
 Kill optional_call and emval has_function: they are legacy from the old way of deriving from C++ virtual classes
do a little less work in the generated caller (i have not run tests on this change)
avoid generating the named function trampoline in method callers and optimize integer readFromPointer (i have not run tests)
special-case void returns to avoid wiretype marshalling and destructors. huge win in firefox, minor win in chrome. have not run tests.
avoid a trampoline in memory view decoding
change memory_view so that type knowledge is known statically in the signature, so that the specific typed array does not need to be dynamically looked up upon wiretype decode.
add a more convenient property setter to val
Merge pull request #2555 from waywardmonkeys/embind-js-library-without-prefixing

Embind js library without prefixing