Introduce a facility to maintain kubernetes_api. Gitlab::Kubernetes::Client

The only change is to move all Kubernetes-related-kubeclient-methods into separate class Gitlab::Kubernetes::Client to hide a way how we interact with kubeclient and handle errors.

https://gitlab.com/gitlab-org/gitlab-ce/issues/38668#note_47928828


We introduced a FetchKubernetesTokenService(app/services/ci/fetch_kubernetes_token_service.rb) in https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/14470. This class is almost copied from KuberntesService(app/models/project_services/kubernetes_service.rb). This is not dry. We should introduce a facility to maintain kubernetes_api and points it from KuberntesService. And we can remove FetchKubernetesTokenService.


The following discussion from !14470 (merged) should be addressed:

/cc @ayufan

Edited by Shinya Maeda