Fix LLVM codegen of negative integer literals

The LLVM codegen currently uses strings to represent big integer constants. Previously, it allocated enough space for one character per digit, plus a terminating null character. This lead to a failure when compiling negative integer constants, which need additional space for the negative sign.