Command refactor

Refactored the project so that commands.go is in its own sub-package, and there's also a db sub-package which keeps the redis pool as well as some other helper functions.
I don't think we should send back nil as soon as we can, kind of defeats the purpose of sending back an error at all. And if we do that second thing we might end up with a case where only half the ZREM's go through, at which point we break out and return, but the client object would still have the removed queues in its `queues` variable and those would just get added back by `ForceUpdateConsumers`. I don't know how much we really care about how accurate the consumers stuff is though.