Move commands into their own module.

This gem clearly needs some clean up and better structure.
Let's start with this commit.