Rename Execute -> Main
Factor out assembly loading to dependency
Handle unknown commands
Make name and description part of the commands

The name and description are now constants in every command.
They're resolved by reflection when needed (for instance, help screen)