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.
What if we only add an lrem on the unclaimed if we got 0 removed on claimed? I'd rather add the extra call in to make it more reliable than performant just because it's a very likely edge case. Kind of the best of both worlds with the check added in as well.