nsqd: persist metadata when (un)pausing channels
Merge pull request #274 from mreiferson/pause_persist_274

nsqd: paused channel becomes unpaused when nsqd bounces
update ChangeLog
nsqd: fix test that was poking into internals of simplejson
util: dont access simplejson internals
Merge pull request #275 from mreiferson/simplejson_internals_275

cleanup 'improper' use of simplejson internals
nsqadmin: fix counterTarget
nsqd: fix race for client subscription cleanup

SubEventChan is buffered to prevent deadlocks so it
isn't guaranteed that messagePump() will recv
the channel subscription state update.

If a client races and disconnects, messagePump()
exit will not tell the channel to remove the
client metadata.

This moves the code to the readLoop() exit path
which has no memory race reading client.Channel
and can always properly cleanup.
Merge pull request #277 from mreiferson/nsqadmin_counter_277

nsqadmin: fix counter page
nsqd: fix theoretical client/message delivery race

SendMessage() was performing an unsafe read of client.Channel
and both StartInFlightTimeout() and client.SendingMessage()
should be performed before any potential early exit
due to errors to prevent orphaned messages.
Merge pull request #278 from mreiferson/clients_278

nsqd: client races
use godep for reproducible builds
Merge pull request #266 from mreiferson/godep_266

use godep for builds
allow testing without godep
add bench.sh
bump 0.2.23 stable