[1] Implement AsmParser for ARM unwind directives.

This commit implements fnstart, fnend, cantunwind, personality,
handlerdata, pad, setfp, save, and vsave directives.
[1] Switch section after ARM unwind opcode is emitted.

We should switch the section to the text section defining
the function.  Otherwise, the continuing function will be
emitted in the .ARM.exidx section, which is incorrect.
[1] Add testcases to test combinations of .section, .fnstart, and .fnend.
[1] Add testcase for comdat section with unwind opcode.
[1] Add testcases for ARH EHABI compact model.
[1] Allow different combination of .personality, .handlerdata, and .fnend.
[1] Enhance the diagnostics for ARM unwind directives.
[1] Refine the comments for $sp offset.
[2] Return the unwind opcode after finalize and reset the assembler.
[2] Remove unused function in ARMUnwindOpAsm.
[2] Remove tricky offset for unwind opcodes.
[2] Track the unwind opcode size.
[2] Rename several unwind assembler function.
[2] Delay the usage of MRI until finalize.
[2] Emit the unwind opcode in reverse.
[2] Implement correct fp offset and multiple directives.
[2] Update the test cases for ARM unwind directives.

Compared with the object file generated by gas, the unwind
opcodes in eh-directive-pad.s and eh-directive-setfp.s
should be swapped.  The semantics remain unchanged.

Compared with the object file generated by gas, the sp offset
was incorrect in ehabi-mc.ll and ehabi-mc-section.ll.