cleanup: use IDocumentation::Ptr

replace QExplicitlySharedDataPointer<KDevelop::IDocumentation>
REVIEW: 121373
gdb: remove unused QueueWhileInterrupted mode from the command queue
gdb: do not use addCommandToFront in DisassembleWidget
gdb: DebugSession: add a testing mode for unit tests

Attempt to provide a cleaner environment during unit tests, in particular do
not read the user's .gdbinit files (those can mess up breakpoint counts etc.).
gdb: match structure more closely to the GDB/MI documentation and use cmd tokens

In particular, split Result and Async records into separate categories to mirror
the GDB documentation and account for the reality that async records can come
at any time according to the GDB doc, and need to be processed in any case.
These changes should help make the debugger more robust in the long term.
gdb: always process async notifications from GDB

The GDB documentation says that async notifications may arrive at any time,
even when all commands have returned a result.
gdb: remove magic constants in GDBMI::StreamRecord
gdb: remove flaky DebugSession::parseStreamRecord
gdb: add braces around multi-line if statement
gdb: examineCoreFile: update IDebugSession::state() to match unit tests
gdb: update session state more robustly based on async notifications

This is a first step towards picking up changes of the running state that are
caused by user commands to GDB.
gdb: make testIgnoreHitsBreakpoint more robust to timing issues

Instead of waiting for a debugger state, wait for a combination of debugger
state + breakpoint hit-count. This ensures that the test does the right thing
even when an intermediate PausedState is encountered during program startup.
It also happens to verify that the breakpoint hitCount is updated correctly.
gdb: testManualAttach: fix timing
gdb: unit tests: make timing more robust in some tests

Wait explicitly until the debugger is idle, which should avoid accidentally
accepting an intermittent pause state; it also ensures that data reloading
has completed e.g. for the frame stack model.
gdb: unittests: remove unused WAIT_FOR_STATE_FAIL
gdb: source code formatting changes
test_gdb: remove code duplication in check whether ptrace attach is allowed
test_gdb: add missing gdb_script_empty
gdb: make loading of our Python pretty printers into gdb more robust

Instead of relying on a cmake-configured gdbinit that might end up being
moved around by the user, we add the Python path at the point where we also
determine the path to gdbinit.

REVIEW: 121464
gdb: do not crash when receiving thread-info responses with running threads

gdb can operate in a mode where gdb receives commands while the inferior (or
a subset of the threads of the inferior) is running.

REVIEW: 121465