Halt! - implementing stopping the connection

Be extra careful when you add this callback, because this is sometimes being called with the `m_stop_lock`.

This could lead to interesting problems. For example, you could run into a segfault if the connection is stopped while/after transitioning into the connecting state.