Initial checkin of C++ introspection code.

Will be used for automatically naming Funcs and Vars, but not hooked up yet.
Fix crash in introspection when debugging symbols are off
Always compile tests with debugging symbols.
Added support for stack vars of inlined functions, and more tests.
Added missing const qualifier
Fixes for OS X
Extra check to prevent wandering off-stack
Instead of unsafe stack sniffing, rely on frame pointers.

We can't do introspection without frame pointers now, but this makes
valgrind much happier, and makes the whole thing less error-prone.
Conservatively don't introspect on arm or x86-32
Build fixes for earlier llvms
Enabled automagical naming for Funcs
Enabled automagic naming for Params, Vars, RDoms
Disabled parsing debug info beyond the first compilation unit
Enable debug symbols for more apps
Fixes for multiple compilation units

We were interpreting references incorrectly in debug_info (start of
section instead of start of unit), and we weren't parsing debug_lines
beyond the first unit.
Build fix for modules app on os x
Fixed warning in introspection
Force PC offset after relocation to be a multiple of page size.
Handle different variables at the same stack offset

This can happen due to scoping:

void f() {
  {
    int a;
  }
  {
    int b; // probably has same address as a
  }
}

Fixing this requires tracking the live ranges for each variable.
Correct live range PCs for relocations