Retargetable

Implements support for specifying target triples and CPU and fixes a few issues with the LLVM codegen. Renames --target to --codegen.