workaround for nativeclient issue 3798, wrong alignment on copy of a byval struct argument
Minor code simplifications.
Introduce the asmjs-unknown-emscripten target triple.
Support GEP and ConstantExprs directly in the JSBackend.

This patch also lays the groundwork for the single-use instruction trick to
reduce the number of temporary variables.
Eliminate a few more temporary std::strings.
Re-introduce ConstantExpr expansion for constants containing illegal types.