Move Q_DECLARE_OPERATORS_FOR_FLAGS out of namespaces

Having the macro expanded while not in the global namespace messes with the
precedence rules of operator| in a way that prevents the QFlags mechanism
from working correctly.

Observe one additional change which was necessary precisely because somebody
had previously used a C-style cast to work around this breakage.

REVIEW: 121626
IDebugSession: reduce coupling between interface class and implementations

Instead of having the derived class poke at IDebugSession member variables,
we now use pure virtual methods to access IBreakpointController etc.
This is in line with the design of other interfaces throughout kdevplatform.

Note that this change is both forward and backward source incompatible, i.e.
debugger plugins must change simultaneously with this change or they will
no longer compile. Since this change is fairly trivial, this seems acceptable.

REVIEW: 121616
debugger: notify IBreakpointController of changes via new breakpointModelChanged

This is a first step to transitioning IBreakpointController towards a real
interface class.

Binary Incompatible Change
debugger: notify IBreakpointController of deleted breakpoints via new method

Binary Incompatible Change
IBreakpointController: make debuggerStateChanged a virtual member function

Binary Incompatible Change
debugger: some API state clarifications
debugger: store hit count in the BreakpointModel instead of the controller

Binary Incompatible Change
debugger: streamline breakpoint error message handling

Error messages are now stored in the model instead of the controller, and
error messages are per-breakpoint instead of per-column.

Binary Incompatible Change
Source Incompatible Change, though kdevelop master is unaffected
debugger: store breakpoint state in the model

Source and Binary Incompatible Change; requires recent kdevelop master
IBreakpointController::breakpointState() has been removed; use Breakpoint::state() instead
IBreakpointController: clarify that part of the API will be removed
IBreakpointController: complete the row-based API

Binary Incompatible Change
debugger: breakpoint model and controller: style and layout changes from code review
IBreakpointController: add breakpointAdded callback

Binary Incompatible Change
Breakpoint: do not report "changes" that did not change anything
Breakpoint: remove outdated comment regarding partially enabled breakpoints
BreakpointModel: merge fix: call breakpointAdded correctly