Added support for executor pools and the Command.pool attribute.
Added a lock to improve thread-safety of Command.submit().
Removed CommandGroup.submit() (for now). Command.submit() does all the work.
Implemented CommandGroup.get_command(command_name)
Implemented command timeout, .cancel() and .wait()

Lots of internal logic and refactoring.