* some SDL functions from SDL1.x and SDL2.x
Fix assertion that all switch-cases break.
Add return-type tracking to normalizeAsm/denormlizeAsm
Don't let buildFlowGraph return to a junction if it's known to be unreachable.
Teach buildFlowGraph about functions that are known to always throw.

It can treat calls to these functions like a jump to function exit,
allowing for more accurate tracking of dead junctions.
Handle non-breaking case bodies in switch statement.

These don't actually flow through to the next case, but we have to
make sure they're properly closed in order to keep our invariants
in order.
Simplify labelled-block handling so it works better with switch statements.
Use standard fds of 0,1,2 rather than 1,2,3
Differentiate between file pointers and file descriptors.
move automatic OES_standard_derivatives enabling behind LEGACY_GL_EMULATION define
Remove an assertion that prevents mergefunc from doing its magic.
Fix a possible memory corruption bug when using val::as
Bring back Joe's original test too
Add operator_new to smart_ptr_trait.
Rename smart_ptr_trait::operator_new to construct_null per feedback from Chad.
Add a test to verify we can use static constants defined in classes.
have VirtualFileSystem also depend on the file path so renaming shaders causes a rebuild
Add a sample for adding mixins to embind
Fix a possible double-deletion in embind when returning a smart pointer from an abstract class implementation.
Improve Web Audio buffering.

This changes the Web Audio code to increase buffers according to
SDL.audio.numSimultaneouslyQueuedBuffers, which can be changed via
Module['SDL_numSimultaneouslyQueuedBuffers']. It becomes more
similar to Mozilla Audio Data code. Multiple pending timers are
used to improve sound when there is high CPU usage.