Watchpoints patch

This should fix watch points. The key place it will be wrong, if it is, is in `WatchpointManager.cpp` -- it seems sane to me, but could you have a look?
There is no reason for this to be a member function, so I'd suggest making it a static free function in this file instead.