Remove (most) LLVM intrinsics from the compiler

This commit is similar to the old one, and does the following

 - Removes most LLVM intrinsics from the compiler
 - Adds functions that optimize down to specific LLVM intrinsics to
   libcore
 - Adds a pragma #[constant_arg] for constant integer arguments to intrinsics (and other functions)
 - Utilize the sqrt intrinsic for f32/f64 since LLVM lowers it to an actual instruction sequence.