Implement flexible target specification

See commit message.
I think it would be good to run target string through llvm::Triple::normalize() before searching for built-in targets.