Use atomic allocations when safe in LLVM codegen.

This reduces the amount of memory Boehm has to scan.
Merge pull request #455 from Ralith/atomic-allocs

Use atomic allocations when safe in LLVM codegen.