SIMD operations

Only implemented in the evaluator and the LLVM backend at present. Includes another minor IR refactor to ease working with numerous numeric types and reduce duplication between Const and FType.