Implements proper connection management
 * One TCP socket per subscription. Allows a single Client instance to manage many subscriptions and their underlying protocol state machines and sockets
 * Automatically create an addidional socket for publishing when called
 * Close subscriptions and sockets cleanly
 * Properly handle transactions for req-rep interactions
 * Add some sane error handling at the protocol layer
Merge branch 'master' of github.com:jmanero/nsq-client

Conflicts:
	lib/connection.js