Make client heartbeats configurable
nsqd.options.*  needs to be seen globaly sometimes.

nsqd is globaly declared in main.go these methods were shadowing
nsqd and when calling methods Like NewClientV2(nil) it has no way
to get at something in the config nsqd.options.* space.
some code review updates

* move to a new json key heartbeat_interval
* move to milliseconds over seconds
* limit the range of data we accept
* use -1 as the "turn off" flag
* move initialization to NewClientV2()
Move all heartbeat code out of messagePump

messagePump only uses the Channel to send heartbeats
dont use custom heartbeat type