* util/localconfig: prefer HOME env var over os/user
The os/user package requires that the current user be in /etc/passwd.
That complicates executing the argocd command in a docker container
when the UID:GID of the executing user is overridden.
This is often done in order to have files generated inside a docker
container have their ownership set to match the uid/gid of the host
user.
For example,
```sh
docker run -ti -u "$(id -u "${USER}"):$(id -g "${USER}")" argocd:latest ...
```
* Makefile: use pinned dev image dependencies to run make lint
* Make use of dex refresh tokens and store them into local config
* API client will automatically redeem OIDC refresh token if auth token expired.
* Stop the practice of reissuing/resigning non-expiring dex claims in API server.
* Add ksonnet version to version endpoint
I needed to move config.go out of the cli package to fix a circular dependency.
* Remove ksonnetVersion field from the ArgoCD version struct
* Refactor local ~/.argocd/config to be similar to kube configs
* `argo login` will detect TLS issues and prompt user before writing config
* version server is unauthenticated and `argo version` will report server version