1) Multiple test improvements;
2) Fix a bug in `dvc repro`, when callback stages were not reproduced and instead a build cache was used;
3) `dvc status` with `--remote` now implies `--cloud`;
4) Raise exception when output/dependency doesn't exist. Previously this was handled properly only for local outputs/dependencies;
5) Use temporary file as an intermediary step when uploading to ssh remote to prevent cache corruption;
6) Use cache directory mtime/inode/size to do cache validation faster;
7) Support `dvc run --wdir` as a way to run dvc file command from a directory that doesn't match dvc file location;
8) Gracefully handle a case when a progress bar is interrupted with a prompt;
9) Support `dvc add` for symlinks that point to a location within or outside the current project;
10) Multiple code refactorings;