Walk ARM Procedure Call Standard frames for profiling, where available.

This needs more work, but it's a proof-of-concept and it basically
works.

Also this is not quite APCS, as it ignores the saved PC field (as
distinct from the saved LR), but: Linux perf(1) does this too, and I'm
exploiting this property in my GCC change to make this work efficiently
for Thumb2.
profiler: enable "stackwalk" by default if ARM frame pointers
Get stack end on Android
Trace from the signal context's r11, not inside the handler.

The r11 is preserved across the handler dispatch, so we still got the
stack, but with extra frames tacked on; it seems better to not record
them than to try to preprocess them out.  But this also means we have to
validate the initial fp value, because FramePointerStackWalk checks only
those it fetches (and doesn't have access to a lower bound other than
that first fp).
Avoid integer overflow when checking fp validity