implement Protocol's shutdownOutput0, notifyClosedInput0, and notifyClosedOutput0 natives

This implements the *Protocol.shutdownOutput0*, *Protocol.notifyClosedInput0*, and *Protocol.notifyClosedOutput0* natives. But I'm not totally sure about these implementations.

For one thing, we don't actually have any control over the TCP socket's input and output streams, so we can't actually do what the original shutdownOutput0 does (flush and close the output stream). And it isn't completely clear that merely resuming the read/write threads is the right behavior.

On the other hand, based on the call sites for shutdownOutput0, I think we're ok doing nothing in that function. And my reading of the reference impls for notifyClosedInput0 and notifyClosedOutput0 suggest that they simply resume the threads. So I think these are reasonable.

But I'd love to get a second opinion, @marco-c!