Abstract debugger init to the api layer

Due to the debugger's need for interprocess communication
(for message passing and synchronization), it is best to
abstract the init process to the api layer.