Redis pub/sub

**DO NOT MERGE**

This is definitely not ready to merge but I'm interested in thoughts on improving it. The subscription code definitely needs more testing as I wrote it pretty quickly.

I'm particularly interested in thoughts about:

1) if it is it okay to split the redis functionality across storage and io? I think it makes sense. I'll probably add a comment to the io code to mention where the redis-server node is defined.

2) I converted the nodes to use a redis-server configuration node but I'm not sure what to do about backwards compatibility?

Thanks,
 Mark