getOptProxyHandler

If this is a handled Proxy whose handler is an instance of handlerClass,
then return that handler; else null.

All implementations of getOptProxyHandler/1 must be thread
safe, in order for
BootRefHandler.getOptBootRefHandler/1
to be thread safe: myOptHandler only makes one transition from non-null
to null. This implementation samples it once, and then proceeds with the
possibly slightly stale sample.

resolutionRef

If this proxy is still being handled, return this; else return
whatever it's been shortened to.

All implementations of resolutionRef/0 must be thread safe, in
order for Ref.resolution/0 to be thread
safe: If resolutionRef/0 is called from another thread while this
proxy is in the middle of being shortened, then resolutionRef/0 must
return either this or what this proxy is being shortened to.

XXX Although the implementation doesn't synchronize, it is inductively
thread safe given a simple memory model. Is it safe in Java's complex
memory model? Do we care -- are any Java implementations not faithful to
the simple memory model?

Why wasn't this event queued? It isn't queued if this
vat or comm connection is shut down, in
which case the returned problem explains why. If null is
returned, then the event was queued, though it may still not
arrive.