Build target triples using the Triple::enums instead of string parsing

This fixes a bug where arm android wasn't actually eabi, resulting in
32-bit aligned stack pointers instead of 64-bit aligned, resulting in
chaos and misery.