LLVM target

This implements --target llvm, which generates IR mapping closely to Idris' internal Simplified representation. Compiled idris code runtime performance on [one benchmark](https://github.com/Ralith/quasigroup-completion) is more than doubled compared to the C backend. Compilation performance is also improved. This will provide a good platform for exploring unboxing and escape analysis for further performance improvement.

All tests except for test018 (which uses LFork, which I don't presently intend to implement) pass on Linux. The LLVM bindings fail at runtime on mingw, and there appear to be ABI issues in the code generated by the target on OSX (edit: mostly fixed in 501bc1b5fd21f75355aa9c9195d9b7e77add0d18). Floating point primitives are not implemented as I intend to submit another pull request modifying their representation soon.

This adds a buildtime dependency on `llvm-general>=3.3.0.3 && <3.4`, and on version 3.3 (the current stable release) of LLVM itself, and currently requires that `llc` be in PATH for the target to be used. This requirement will eventually be lifted, enabling Idris to generate object files entirely in-process.