Pubsub changes and docs

I was finding occasional deadlocks and interleaved reads with the pubsub implementation. This PR seems to fix it. Here is a program that would always deadlock before but works with this patch:

````
#lang racket
(require "./main.rkt" racket/async-channel)

(define pool (make-connection-pool))
(define pubsubconn (lease-pubsub-conn pool))
(redis-connection? pubsubconn)
(pubsub-connection? pubsubconn)
(define foo-chan (make-subscribe-chan pubsubconn 'foo pool))
(sleep .1)
(define bar-chan (make-subscribe-chan pubsubconn 'bar pool))
(PUBLISH 'foo "Hello")
(PUBLISH 'bar "World!")

(async-channel-get foo-chan)
(async-channel-get bar-chan)
````

I also did some work on the docs and added an info.rkt file for the package system.
Yes, it would be cleaner to just provide the release function that the manager thread uses as `reset-connection-state` or similar.