Improve instruction emulation based stack unwinding on ARM
- Add and fix the emulation of several instruction.
- Disable frame pointer usage on Android.
- Specify return address register for the unwind plan instead of explicit tracking the value of RA.
- Replace prologue detection heuristics (unreliable in several cases) with a logic to follow the branch instructions and restore the CFI value based on them. The target address for a branch should have the same CFI as the source address (if they are in the same function).
- Handle symbols in ELF files where the symbol size is not specified with calculating their size based on the next symbol (already done in MachO files).
- Fix architecture in FuncUnwinders with filling up the information missing from the object file with the architecture of the target.
- Add code to read register when the value is set to "IsSame" as it means the value of a register in the parent frame is the same as the value in the current frame.