In case of error, the least we can do is to log it
handlers now return a boolean to stop the processor (true: close the channel and terminate the goroutine)
updated event handler interface (return done)
start of "peripheral explorer" function (connect, discover services, disconnect)