Transaction support for redis

Currently you can run commands between multi() and exec() but it always throws exceptions because parsing replies for transaction messages is not actually implemented.

This code handles parsing messages for transactions.

For the most part, I am allowing "+QUEUED" and "+OK" and broke some code out into another function so that a "multi-bulk" can have another "multi-bulk" inside of it.  Didn't actually change/add many lines at all, that's just what the diff algorithm detected for some reason.

I tested this with a couple of my own redis modules, one that uses transactions and one that doesn't.