Use BlockBuffering on socket handle

This improves pipelining performance. Without BlockBuffering, the handle
defaults to `NoBuffering`, and every `hPut` is immediately digested, i.e.
the `hFlush` in the `unsafeInterleaveIO` section never actually does
anything.

The benchmark program shows an average of 378969.8 pings per second
without this patch, and 629792.5 pings per second with it.

I chose 4096 arbitrarily. We must determine an appropriate value.