1) Refactored logging subsystem;
2) Improved `dvc init` messages;
3) Supported `remote://` syntax for local remotes;
4) Supported relative paths for local remotes;
5) Introduced `dvc cache` command;
6) `dvc push/pull/etc` are now throwing a warning when stages are not up to date;
7) Refactored deps/outs classes;
8) Supported specifying port in the url for ssh remote;
9) Fixed the bug with improper command escaping on `dvc run`;
10) Refactored remote classes;
11) Supported recursive push/pull/etc;
12) Fixed the bug with improper path resolution when `dvc move` receives a file name with a suffix.
13) Fixed the bug with improper file/directory size cast in our state database;
14) Fixed the bug with improper file size calculation;
15) Refactored `dvc import` error message;
16) Fixed the bug with dvc file not being moved on `dvc move`;
17) Made first iterations to comply with pylint;
18) Introduced another level of the build cache, that will checkout files instead of running the command on `dvc run`, if it detects that this stage has been ran already;
19) Fixed the bug with improper directory path handling in `dvc move`;
20) Fixed the bug with cyclic dependencies in a DAG of a project, as well as introduced additional levels of checks to prevent that from happening;