compiler: Reformat and doc bound syntax classes

This has no functional change, it just improves the Scaladoc for the
exisiting classes
compiler: Cache common location metadata numbers

This makes us generate less repetitive LLVM IR when a source location
appears multiple times. This will become important once inlining is
supported. It's also consistent with what Clang generates.
compiler: Generate inlining debug info

This generates debug info for macro expansions and inlined lambdas. This
also replaces the old "expandedFrom" mechanism for tracking errors in
expanded macros at compile time.