Properly erase/remove a DebuggerObserver

Indeed, there's surprisingly no convenience function in `std::vector` to remove an element by value. The ideal would be to do a swap-with-last since order doesn't matter, but this is good enough.