nsqd: refactor IDENTIFY

tighten up the code paths involved in client IDENTIFY
and how data is passed between the receiving goroutine
and the messagePump.
nsqd: add msg_timeout to IDENTIFY

add support for specifying the message timeout
that should be used for messages delivered to
client.
nsqd: refactor IDENTIFY test helpers
nsqd: deflake TestSampling
nsqd: deflake TestInFlightWorker
Merge pull request #318 from mreiferson/refactor_identify_318

nsqd: specify message timeout for client in IDENTIFY
try out some other techniques
and one more spot
nsqd: remove use of defer in fast path