nsqd: dont retain client pointer for inflight msgs

more cleanup relating to what pointers might be retained
preventing proper GC.

this changes the in-flight messages struct so that it
uses an int64 ID rather than a pointer to ensure
that only the original receiver of a message can
respond to it.  this required changes to the channel
to store clients as a map[int64]Consumer in order
to lookup the proper client by ID.