In recent nix versions the `nix flake show` command busts the eval
cache, which made the function that used to be faster, slower.
On benchmarks the completion was around 180-200ms.
Add dynamic completion scaffolding to the clan `cli`.
Also add a dynamic completion mechanism for machines for commands that
have machines as their sole argument.
More intricate dynamic completions will be implemented in follow up
PR's.