SQL message bus changes:
- Ensure receive loop is running before we open the send queue
- Split the observable SQL reader code into ObservableSqlOperation which reports all errors via a callback