Issue title: Defer validation of Kubernetes environment until a resource effectively needs it
 Issue body: We'd like to integrate the bootstrapping of our Minikube cluster to Tilt using `local_resource`

This is helpful because we can dynamically determine how cpu/memory to use based on which resources need to be deployed, and also because currently, our way to setup a local development environment is finnicky (i.e. _wait until this service is up, then port-forward it to `:XXXX`, then run this JAR to register the IoT device on the cluster..._) and we'd like to make that into a single `tilt up` command, especially given that _"waiting for service X to be up"_ is the kind of thing that is finnicky to script, but that Tilt is great at.

Currently, however, when you `tilt up` before Kubernetes is up, you'll run into some variation of these errors:
```
Error: Error watching k8s events
: could not set up k8s client: Kubernetes context not set in [/home/ubuntu/.kube/config]

Error: Error watching services. Are you connected to kubernetes?
Try running `kubectl get services`: could not set up k8s client: Kubernetes context not set in [/home/ubuntu/.kube/config]
```

This will happen even though we have a `local_resource` that will spin up a `minikube` instance, and if this check was deferred by default (or by some top-level setting like `deferred_kubeconfig(True)`) this could be naturally implemented and would work as intended
 Comments: 
 Comment 0: Thanks for filing @luizberti ! This would unfortunately not be straightforward to implement, as we use the kubernetes client for a number of things when initially setting up the Tilt engine, but I bet it could be done! I don't think the team will get to this any time soon, but it's on our backlog for sure!
{'source': 'GithubIssues', 'repo_name_with_owner': 'tilt-dev/tilt', 'issue_id': 706416904, 'repo_stars': 2663.0}