warn on emscripten, llvm and clang versions not matching
Fix a variety of pylint warnings.
Fix a copy+pasto.
Minor code simplifications.
Introduce the asmjs-unknown-emscripten target triple.
Update the tests to use asmjs-unknown-emscripten.
Begin using the Emscripten toolchain in clang.

With the Emscripten toolchain, we can make clang do more of what we need
directly rather than in the wrapper scripts.
Use __EMSCRIPTEN__  instead of EMSCRIPTEN in tests.
Fix the banned_js_engines mechanism.
Make the "did NOT asm.js'ify" error message more