reader: more granular connection locks
Merge pull request #33 from mreiferson/granular_locks_33

reader: more granular connection locks
reader/writer: refactor configuration
command: refactor to implement WriteTo interface; drop binary.Write
conn/reader/writer: refactor write buffering; switch to WriteCommand
reader/conn: update comments; go fmt
writer: simplify public error handling
test: fix fatal test output
message/command: use callback API for message responses; switch to time.Duration for Requeue
conn: expose FIN/REQ callbacks; refactor Message response plumbing
reader: remove AsyncHandler interface
conn: close read side first, then write; trap conn closed errors
conn: don't publicly embed net.Conn
reader/conn: s/Stop/Close; CloseRead if no messages in flight upon Close(); refactor
reader: use wg for rdyLoop and lookupdLoop; s/ExitChan/StopChan
reader/writer/conn: conn doesn't take topic/channel
reader: add global reader instance counter
reader: consistent exit path for long running handler goroutine
reader/writer/conn: drop individual callbacks for delegate interface
reader: comment fixes; make atomic counters private