Rework handling of ARM/Thumb single step.
Create a DS2_UNREACHABLE macro

__builtin_trap is not always available.  The particular use of it was indented
to indicate that the code path is not reachable.  Create a DS2_UNREACHABLE macro
to aid in marking the location as such across various compilers.