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.
Remove useless #includes from Base.h and move to appropriate files.
Correctly handle split-reads of auxv data.
Use AnyProcessId instead of AllProcessId when none is specified.
Implement attach for debug session.

This commit keeps in place the now-empty SlaveSessionImpl. If it ends up
being purely useless, I'll get rid of it later when I restart working on
platform support.
Ignore packet checksums when we are in noAckMode.

noAckMode implies that checksums should not be checked. Implementations
may simply send "#00" as their checksum.
Separate the run and wait operations in ProcessSpawner.
Move platform-specific support files to their respective directories.
Stop using `assert' in favor of DS2ASSERT.

This makes sure that we get failed assertions in our log files and
uniformizes the output format.
Minor style fixups.

Just ran clang-format on every file.
Get rid of some dead code in ProcessSpawner.
Fix a typo in ProcessSpawner::setArguments().

A local variable was declared static which could lead to problems when
called twice with the same type list but with different values.
Implement `O` packet, forwarding stdout back to debugger.
Use a virtual terminal for inferior output capture.

Debugged processes in general expect their standard streams to be
connected to a terminal, or might alter their behavior (e.g.: output
buffering, output formatting, etc).

Pipes do not present a terminal interface, so we have to create a
virtual terminal pair in order to keep the interface.
include missing header

Types.h uses free() which is declared in stdlib.h.  Fix missing include.
NFC.
avoid COM interfaces

We use the windows itanium target which doesnt provide a builtin
definition for IUknown like MSVC.  Avoid the COM interfaces when
building DS2.
Implement Q{Save,Restore}RegisterState.
Avoid the min/max macros on Windows

Windows.h by default defines a min and max macro.  Use NOMINMAX before
including Windows.h to permit us to use std::min and std::max as on
every other platform.
Send a triple instead of cputype/cpusubtype when talking to lldb.

This is what lldb (and the llgs tests) expect.