repro: missing cache should not break repo
1) One directory in dvc cache was removed. As a result, I cannot reproduce the directory. It basically breaks the entire repository.

```
$ dvc repro
Failed to reproduce 'Dvcfile': Failed to reproduce 'train.dvc': [Errno 2] No such file or directory: '/home/ubuntu/src/dvc_tutorial/.dvc/cache/0d/d437f2f04fbf54355beab021494baa'
```

2) The same issue for dvc checkout. Not sure about right behaviour - needs to be discussed.

```
$ dvc checkout
'data/plot_loss.jpeg': cache file not found
'data/plot_acc.jpeg': cache file not found
'data/cats_and_dogs_small': cache file not found
Unexpected error: [Errno 2] No such file or directory: '/home/ubuntu/src/dvc_tutorial/.dvc/cache/da/49cf17236a5f2b4cf7046518b272d8'
```

3) (minor) It is better to replace the full path to the relative in the error message.
diff --git a/dvc/output.py b/dvc/output.py
index f86070e17..815c28304 100644
--- a/dvc/output.py
+++ b/dvc/output.py
@@ -237,12 +237,22 @@ class Output(Dependency):
 
     @staticmethod
     def load_dir_cache(path):
-        with open(path, 'r') as fd:
-            d = yaml.safe_load(fd)
+        if os.path.isabs(path):
+            relpath = os.path.relpath(path)
+        else:
+            relpath = path
+
+        try:
+            with open(path, 'r') as fd:
+                d = yaml.safe_load(fd)
+        except Exception as exc:
+            msg = u'Failed to load dir cache \\'{}\\''
+            Logger.error(msg.format(relpath), exc)
+            return []
 
         if not isinstance(d, list):
             msg = u'Dir cache file format error \\'{}\\': skipping the file'
-            Logger.error(msg.format(path))
+            Logger.error(msg.format(relpath))
             return []
 
         return d
['dvc/output.py']