pkg/tool/os: add tasks for environment variables

These are implemented as tasks as they are state
altering and may yield different results on repeated
calls.

Also:
- Remove usage of package errors for pkgs.
- Updated go-cmp
- Fix bug in dependency analysis where default
  values could cause a dependency to be concrete
  prematurely.

Issue #159

Change-Id: I517eb6892cbeff538c806a822510ffce5dcb31b0
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/4461
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/doc/tutorial/kubernetes/testdata/quick.out b/doc/tutorial/kubernetes/testdata/quick.out
index 95bdcd4..6d4fa10 100644
--- a/doc/tutorial/kubernetes/testdata/quick.out
+++ b/doc/tutorial/kubernetes/testdata/quick.out
@@ -111,8 +111,8 @@
 }
 deployment: {
     bartender: {
-        kind:       "Deployment"
         Name ::     "bartender"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "bartender"
@@ -217,8 +217,8 @@
 }
 deployment: {
     breaddispatcher: {
-        kind:       "Deployment"
         Name ::     "breaddispatcher"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "breaddispatcher"
@@ -323,8 +323,8 @@
 }
 deployment: {
     host: {
-        kind:       "Deployment"
         Name ::     "host"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "host"
@@ -429,8 +429,8 @@
 }
 deployment: {
     maitred: {
-        kind:       "Deployment"
         Name ::     "maitred"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "maitred"
@@ -535,8 +535,8 @@
 }
 deployment: {
     valeter: {
-        kind:       "Deployment"
         Name ::     "valeter"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "valeter"
@@ -641,8 +641,8 @@
 }
 deployment: {
     waiter: {
-        kind:       "Deployment"
         Name ::     "waiter"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "waiter"
@@ -746,8 +746,8 @@
 }
 deployment: {
     waterdispatcher: {
-        kind:       "Deployment"
         Name ::     "waterdispatcher"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "waterdispatcher"
@@ -893,8 +893,8 @@
 }
 deployment: {
     download: {
-        kind:       "Deployment"
         Name ::     "download"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "download"
@@ -1004,8 +1004,8 @@
 }
 statefulSet: {
     etcd: {
-        kind:       "StatefulSet"
         Name ::     "etcd"
+        kind:       "StatefulSet"
         apiVersion: "apps/v1"
         metadata: {
             name: "etcd"
@@ -1176,8 +1176,8 @@
 }
 deployment: {
     events: {
-        kind:       "Deployment"
         Name ::     "events"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "events"
@@ -1311,8 +1311,8 @@
 }
 deployment: {
     tasks: {
-        kind:       "Deployment"
         Name ::     "tasks"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "tasks"
@@ -1429,8 +1429,8 @@
 }
 deployment: {
     updater: {
-        kind:       "Deployment"
         Name ::     "updater"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "updater"
@@ -1543,8 +1543,8 @@
 }
 deployment: {
     watcher: {
-        kind:       "Deployment"
         Name ::     "watcher"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "watcher"
@@ -1698,8 +1698,8 @@
 }
 deployment: {
     caller: {
-        kind:       "Deployment"
         Name ::     "caller"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "caller"
@@ -1841,8 +1841,8 @@
 }
 deployment: {
     dishwasher: {
-        kind:       "Deployment"
         Name ::     "dishwasher"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "dishwasher"
@@ -1984,8 +1984,8 @@
 }
 deployment: {
     expiditer: {
-        kind:       "Deployment"
         Name ::     "expiditer"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "expiditer"
@@ -2118,8 +2118,8 @@
 }
 deployment: {
     headchef: {
-        kind:       "Deployment"
         Name ::     "headchef"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "headchef"
@@ -2252,8 +2252,8 @@
 }
 deployment: {
     linecook: {
-        kind:       "Deployment"
         Name ::     "linecook"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "linecook"
@@ -2386,8 +2386,8 @@
 }
 deployment: {
     pastrychef: {
-        kind:       "Deployment"
         Name ::     "pastrychef"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "pastrychef"
@@ -2520,8 +2520,8 @@
 }
 deployment: {
     souschef: {
-        kind:       "Deployment"
         Name ::     "souschef"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "souschef"
@@ -2708,8 +2708,8 @@
 }
 deployment: {
     alertmanager: {
-        kind:       "Deployment"
         Name ::     "alertmanager"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "alertmanager"
@@ -2832,8 +2832,8 @@
 }
 deployment: {
     grafana: {
-        kind:       "Deployment"
         Name ::     "grafana"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "grafana"
@@ -2972,8 +2972,8 @@
 }
 daemonSet: {
     "node-exporter": {
-        kind:       "DaemonSet"
         Name ::     "node-exporter"
+        kind:       "DaemonSet"
         apiVersion: "apps/v1"
         metadata: {
             name: "node-exporter"
@@ -3352,8 +3352,8 @@
 }
 deployment: {
     prometheus: {
-        kind:       "Deployment"
         Name ::     "prometheus"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "prometheus"
@@ -3585,8 +3585,8 @@
 }
 deployment: {
     authproxy: {
-        kind:       "Deployment"
         Name ::     "authproxy"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "authproxy"
@@ -3699,8 +3699,8 @@
 }
 deployment: {
     goget: {
-        kind:       "Deployment"
         Name ::     "goget"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "goget"
@@ -3983,8 +3983,8 @@
 }
 deployment: {
     nginx: {
-        kind:       "Deployment"
         Name ::     "nginx"
+        kind:       "Deployment"
         apiVersion: "apps/v1"
         metadata: {
             name: "nginx"