nsqd: client configurable output buffering

I'm happy with how the feature negotiation stuff has gone and it makes sense for the client to be able to (optionally) control the output buffering `nsqd` uses to write to it for a variety of use cases.

PS. I was never really happy with the fact that I had chosen a hard-coded 5ms... one size does not fit all.

cc @jayridge