New base class for debugger engine implementations

Debugger engines now have to subclass DebuggerEngineBackend.
The old IDebuggerEngine interface is still supported, but it is now marked as
obsolete.
Use the new base class for debugger engines