Add list_commands command
Improve command parsing and improve the run command
Add print_registers command
Change register_command so it makes its own internal register_command_t

This way, commands won't be reading garbage data when a struct exits scope
Actually register print_registers