Fix assertion failure when using debug LLVM
Fix another assertion failure with debug LLVM
Simplify tree allocation scheme
Same allocation scheme for types
Only force C++ link if LLVM does not have shared library
Tweak to keep Valgrind happy with tree/type allocation changes
Allow array-of-record aggregates