Enable ARM64 compact unwind handling and stub out the ARM64 unwind types.

Issue: PLCR-499
Merge branch 'master' into landonf-PLCR-499-armv8-unwinding
Merge branch 'master' into landonf-PLCR-499-armv8-unwinding
Merge branch 'master' into landonf-PLCR-499-armv8-unwinding
Implement support for ARM64 DWARF, FRAME, and FRAMELESS encodings.

The unit tests validate the encoding as we understand it, but there may
be incompatibilities that remain between the actual in-use CFE encodings
and our implementation, especially as the ARM64 compact unwind
documentation is known to be inaccurate.

The unwinder appears to work against live CFE data, but additional integration
testing of the three encodings will be required prior to merging this
implementation to master.
Mark UNWIND_ARM64_MODE_FRAME_OLD as unsupported.
Centralize handling of the ARM/ARM64 replacement constants.

With the introduction of new processor types and subtypes, Apple often
does not update the system headers on Mac OS X (and the Simulator).
This centralizes replacement compatibility defines (and includes #warnings
that will fire when the SDKs are updated to include the required constants.)
Incomplete checkpoint commit of the unwind test harness, and a sample test.
Add support for running the tests via libunwind; this allows us to verify that our *tests* are themselves correct.

This enables the use of 'verification' mode on arm64 while we implement our
our tests.
Implement working test runner, with compact unwind data.

This has been validated both via libunwind and via our own unwinder.
This commit also replaces the use of a global function symbol with a
simple pointer reference to the target IP to be validated with
unwinding. This avoids any issues caused by the seemingly distinct
functions being re-ordered.

Issue: PLCR-499
Fix computatation of the stack offset and register ordering according to observed behavior.

Issue: PLCR-499
Always enable the libunwind tests where supported.

This providees simultaneous validation of both our custom unwinding
test cases, as well as our unwinder implementation.

Issue: PLCR-499
Implement DWARF unwind data and enable the DWARF tests.

Issue: PLCR-499
Fix copy/paste of incorrect symbol name.

Issue: PLCR-499
Add x19+x20 frame test variant.

Issue: PLCR-499
Use shorter local label prefixes for the function interiors.

The label prefixes are allocated per test function; eg, T1, T2, T3.

Issue: PLCR-499
Add a regression test for x19,x20,x21,x22 register restoration, and fix issues the test uncovered in the compact unwinder.

The compact unwinder used the incorrect ordering of arm64 restorable
registers; this corrects the ordering.
Clean up the copyright headers.

Issue: PLCR-499
Define FDE macros to reduce code duplication across the tests.

Issue: PLCR-499
Revert "Define FDE macros to reduce code duplication across the tests."

This reverts commit 011f73c18e852974c7f9b7101266c6cd606e5cdc.