publish command
adding tests
adding the most interesting guy in the world to the authors list
pubsub commands + tests

Using `PubSubMessage` to encapsulate messages as we need to know when a redis connection goes
down, which can be tracked via `Error` field.