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/pkg/tool/os/doc.go b/pkg/tool/os/doc.go
new file mode 100644
index 0000000..b32321f
--- /dev/null
+++ b/pkg/tool/os/doc.go
@@ -0,0 +1,48 @@
+// Code generated by cue get go. DO NOT EDIT.
+
+// Package os defines tasks for retrieving os-related information.
+//
+// CUE definitions:
+//
+//     // A Value are all possible values allowed in flags.
+//     // A null value unsets an environment variable.
+//     Value :: bool | number | *string | null
+//
+//     // Name indicates a valid flag name.
+//     Name :: !="" & !~"^[$]"
+//
+//     // Setenv defines a set of command line flags, the values of which will be set
+//     // at run time. The doc comment of the flag is presented to the user in help.
+//     //
+//     // To define a shorthand, define the shorthand as a new flag referring to
+//     // the flag of which it is a shorthand.
+//     Setenv: {
+//         $id: "tool/os.Setenv"
+//
+//         [Name]: Value
+//     }
+//
+//     // Getenv gets and parses the specific command line variables.
+//     Getenv: {
+//         $id: "tool/os.Getenv"
+//
+//         [Name]: Value
+//     }
+//
+//     // Environ populates a struct with all environment variables.
+//     Environ: {
+//         $id: "tool/os.Environ"
+//
+//         // A map of all populated values.
+//         // Individual entries may be specified ahead of time to enable
+//         // validation and parsing. Values that are marked as required
+//         // will fail the task if they are not found.
+//         [Name]: Value
+//     }
+//
+//     // Clearenv clears all environment variables.
+//     Clearenv: {
+//         $id: "tool/os.Clearenv"
+//     }
+//
+package os