Add support for pattern pub/sub

Currently, the patterned pub/sub messages raise an error.  They are expected to return `psubscribe`, `punsubscribe`, and `pmessage`, as per this redis documentation: http://redis.io/topics/pubsub.  This change accepts these message returns.
As far as I can tell this case is identical to the message case, except for the indexes used. I'd rather just do something like:

```go
case "message", "pmessage":
    var chanI, msgI int
    if rtype == "message" {
        chanI, msgI = 1, 2
    } else {
        chanI, msgI = 2, 3
    }
    // The rest of it
```

It's not the prettiest, but it saves having to duplicate that whole block.