cmd: env: Add `indirect` to indirectly set values

This allows an ergonomic-enough approximation of ${!variable} expansion.
This could be used the following way:

```
for target in ${boot_targets}; do
   env indirect target_name target_name_${target}
   # ...
done
```

Assuming `target_name_mmc0` and similar are set appropriately.

A default value can be optionally provided.

Note: this acts on environment variables, not hush variables.

Signed-off-by: Samuel Dionne-Riel <samuel@dionne-riel.com>
Cc: Simon Glass <sjg@chromium.org>
Cc: "Marek BehĂșn" <marek.behun@nic.cz>
[trini: Don't enable by default]
diff --git a/cmd/Kconfig b/cmd/Kconfig
index 7bd9546..c5eb71c 100644
--- a/cmd/Kconfig
+++ b/cmd/Kconfig
@@ -518,6 +518,9 @@
 	  If enabled, we are allowed to set/print UEFI variables using
 	  "env" command with "-e" option without knowing details.
 
+config CMD_NVEDIT_INDIRECT
+	bool "env indirect - Sets environment value from another"
+
 config CMD_NVEDIT_INFO
 	bool "env info - print or evaluate environment information"
 	help