Implement flexible target specification

See commit message.
Oh, you've made arch separate from the LLVM triple.