Add the asmjs-unknown-emscripten triple

This patch series introduces the new asmjs-unknown-emscripten triple, and introduces the beginning of a proper Emscripten ToolChain in clang. See the patch descriptions for details.

This patch series removes Emscripten's main pre-defined macro EMSCRIPTEN, and introduces __EMSCRIPTEN__ in its place, which is a more proper platform macro name. This is an incompatible change; if compatibility is desired, it would be easy to re-add EMSCRIPTEN.

This patch series depends on corresponding patches in the emscripten-fastcomp and emscripten-fastcomp-clang repositories.