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.