perf: ARM: Implement perf_arch_fetch_caller_regs
arm: Fix r7/r11 confusion when CONFIG_THUMB2_KERNEL
arm: Don't use -fno-omit-frame-pointer anywhere if we're not configured for it.

We don't want to use -fno-omit-frame-pointer if CONFIG_FRAME_POINTER=n,
on ARM.  It costs a register, on Thumb it sets r7 to a value that's
not a constant offset from anything of interest (so it doesn't help
with unwinding, and SP-relative addressing has special encodings with
more range anyway), and it can cause misoptimization with GCC <4.6 (see
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54398).

Moreover, on Thumb, it causes GCC to emit unwind directives to restore
SP from r7, which our unwinder can't currently do because r7 isn't
in struct stackframe.
Revert "arm: Don't use -fno-omit-frame-pointer anywhere if we're not configured for it."

This reverts commit 0fc48fc2259812cc427917c7e4fb77d4a2d08f3c.