workaround the goroutine leak problem in apcera/nats/netchan.go

Summary:
in netchan.go, the caller can pass a channel which reads data back via Subscribe on a topic.
https://github.com/apcera/nats/blob/master/netchan.go#L54
```
func (c *EncodedConn) bindRecvChan(subject, queue string, channel interface{}) error {
```
in the underlying implementation, nats defines a callback (i.e. cb) and then call the Subscribe from a conn
https://github.com/apcera/nats/blob/master/netchan.go#L81
```
_, err := c.Conn.subscribe(subject, queue, cb)
```

in the conn.subscribe, nats spawns a go routine to send the message:
https://github.com/apcera/nats/blob/master/nats.go#L1198
```
go nc.deliverMsgs(sub.mch)
```
and that go routine will be terminated "only if sub.mch is closed", which is called via conn.Unsubscribe().
https://github.com/apcera/nats/blob/master/nats.go#L1244
```
func (nc *Conn) unsubscribe(sub *Subscription, max int) error {
```

The bug actually happened, when we look BindRecvChan again: even the caller has closed the channel, the go routine who serves deliverMsg will never be destroyed. We actually have an additional zombie go routine when we call BindReceChan every time.

Please note that this is not actually solution I thought, I prefer call it as a workaround.
I have mailed the author of nats, we may come out a better solution.