Refactored Command class:
  - Command is split to Command and CommandFactoryBase classes
  - Command class is just a value class that stores runnable, command descriptor and current call arguments