patches debug-to-string

ObjectReference.invokeMethod, which is used to call toString on object
references, required a ThreadReference to operate.

Previously DebugManager used ObjectReference.owningThread to provide that
ThreadReference. However, that's not going to work, because owningThread
is just the thread which holds a monitor of a given object ref, not some
magically available thread, which can be used to call object's methods.

I wonder how this ever worked. Probably that was a lucky coincidence,
because sometimes an object being called is indeed locked upon and the
owner of the lock can indeed be used for evaluations. However, my first
experience was far from enjoyable - I got an NPE from an owningThread
being null and spent quite a bit of time understanding what's going on.

Hence we have to bite a bullet and introduce a :thread-id parameter to
the swank:debug-to-string API. That's what I did along with updating the
docs and bumping the protocolVersion.