Metrics show xpath does not override dvcfile xpath

I do have a Dvcfile with metrics, and for some period of time (a few commits) I defined a specific xpath in that file; Now, when I run a different xpath on `dvc metrics show`, the old xpath (and hense, different metric) shows up for the commits where dvcfile specified it:

```
>>> dvc metric show -x pe20

working tree:
        data/rentals/nyc/metrics.json: [88.15]
bin_bedroom:
        data/rentals/nyc/metrics.json: [88.25]
first-iteration:
        data/rentals/nyc/metrics.json: [88.13]
nhds:
        data/rentals/nyc/metrics.json: [7.45]
roosevelt:
        data/rentals/nyc/metrics.json: [7.11]
``` 

obviosly pe20 was > 88 for all the commits, it's just showing median error for the `nhds` and `roosevelt`

diff --git a/dvc/repo/metrics/show.py b/dvc/repo/metrics/show.py
index 4b53f2222..42ceab3d0 100644
--- a/dvc/repo/metrics/show.py
+++ b/dvc/repo/metrics/show.py
@@ -188,16 +188,15 @@ def _collect_metrics(repo, path, recursive, typ, xpath, branch):
         if not o.metric:
             continue
 
-        # NOTE this case assumes that metric has been modified with
-        # `dvc metric modify -t {} -x {}`, so stage file should contain
-        # info what type metric is and what is its xpath
+        # NOTE this case assumes that typ has not been provided in CLI call
+        # and one of the following cases:
+        # - stage file contains metric type
+        # - typ will be read from file extension later
         if not typ and isinstance(o.metric, dict):
             t = o.metric.get(o.PARAM_METRIC_TYPE, typ)
             # NOTE user might want to check different xpath, hence xpath first
             x = xpath or o.metric.get(o.PARAM_METRIC_XPATH)
         else:
-            # NOTE if metric has not been modified, user needs to provide
-            # both metric type and xpath
             t = typ
             x = xpath
 
['dvc/repo/metrics/show.py']