Commands as separate classes

Each command is now in its own class in the 'Commands' namespace, and
loaded through reflection.