tests: add tests for dry-run
factory: add dry_run, which_binary and test_binary into state.envs.common
factory: modification of operation:
  now operations based on envs.common.functions['run'], not on operations.run directly
  add hacks for dry-run
  some refactoring
factory: add --dry-run option to cli and dry_operations.py module