kubernetes: Add loading detection and heuristics
kubernetes: Add loading detection and heuristics

In order to detect when we have loaded sufficient data to display
the screen, we add heuristics to the various watches which tell us
when the watch thinks it has received all the current data, and
is now watching for new items.

See the comments to see how this is done.

In addition we better handle cases of disconnection or restarting
the watches, to prevent churn on loaded objects.

Reviewed-by: Marius Vollmer <bb11c6e942c5cc765df5f04da146b3198127a7a3@redhat.com>

larsu/cockpit,SotolitoLabs/cockpit,vbatts/cockpit,maxamillion/cockpit,dperpeet/cockpit,petervo/cockpit,Thermionix/cockpit,haiyangd/cockpit_view,mareklibra/cockpit,moraleslazaro/cockpit,vanloswang/cockpit,michalskrivanek/cockpit,larskarlitski/cockpit,Scribery/cockpit,denysvitali/cockpit,larskarlitski/cockpit,michalskrivanek/cockpit,xhad/cockpit,fridex/cockpit,sgallagher/cockpit,FireDrunk/cockpit,stefwalter/cockpit,deryni/cockpit,nmav/cockpit,vanloswang/cockpit,vanloswang/cockpit,garrett/cockpit,larsu/cockpit,netzvieh/cockpit,sgallagher/cockpit,Armstrong1992/cockpit,denysvitali/cockpit,denysvitali/cockpit,moolitayer/cockpit,Thermionix/cockpit,larsu/cockpit,mareklibra/cockpit,petervo/cockpit,moolitayer/cockpit,Armstrong1992/cockpit,matobet/cockpit,nmav/cockpit,martinpitt/cockpit,firebitsbr/cockpit,moraleslazaro/cockpit,andreasn/cockpit,firebitsbr/cockpit,moolitayer/cockpit,mvollmer/cockpit,matobet/cockpit,zigitax/cockpit,darioajr/cockpit,evol262/cockpit,Scribery/cockpit,cockpit-project/cockpit,sgallagher/cockpit,vbatts/cockpit,vanloswang/cockpit,sgallagher/cockpit,haiyangd/cockpit_view,larskarlitski/cockpit,darioajr/cockpit,michalskrivanek/cockpit,cockpituous/cockpit,fridex/cockpit,cockpituous/cockpit,martinpitt/cockpit,jscotka/cockpit,evol262/cockpit,mvollmer/cockpit,evol262/cockpit,mareklibra/cockpit,FireDrunk/cockpit,Scribery/cockpit,petervo/cockpit,harishanand95/cockpit,moraleslazaro/cockpit,arilivigni/cockpit,maxamillion/cockpit,andreasn/cockpit,dperpeet/cockpit,SotolitoLabs/cockpit,zigitax/cockpit,cockpituous/cockpit,jscotka/cockpit,netzvieh/cockpit,haiyangd/cockpit_view,deryni/cockpit,deryni/cockpit,xhad/cockpit,garrett/cockpit,larskarlitski/cockpit,harishanand95/cockpit,deryni/cockpit,cockpit-project/cockpit,stefwalter/cockpit,mareklibra/cockpit,martinpitt/cockpit,FireDrunk/cockpit,cockpit-project/cockpit,stefwalter/cockpit,Armstrong1992/cockpit,mareklibra/cockpit,moolitayer/cockpit,arilivigni/cockpit,vbatts/cockpit,andreasn/cockpit,sgallagher/cockpit,xhad/cockpit,haiyangd/cockpit_view,harishanand95/cockpit,michalskrivanek/cockpit,arilivigni/cockpit,nmav/cockpit,garrett/cockpit,stefwalter/cockpit,fridex/cockpit,mareklibra/cockpit,cockpituous/cockpit,larskarlitski/cockpit,Scribery/cockpit,FireDrunk/cockpit,larsu/cockpit,vbatts/cockpit,matobet/cockpit,petervo/cockpit,vanloswang/cockpit,dperpeet/cockpit,jscotka/cockpit,harishanand95/cockpit,Armstrong1992/cockpit,jscotka/cockpit,xhad/cockpit,SotolitoLabs/cockpit,matobet/cockpit,vanloswang/cockpit,netzvieh/cockpit,fridex/cockpit,Thermionix/cockpit,denysvitali/cockpit,deryni/cockpit,darioajr/cockpit,arilivigni/cockpit,fridex/cockpit,matobet/cockpit,arilivigni/cockpit,michalskrivanek/cockpit,FireDrunk/cockpit,xhad/cockpit,mvollmer/cockpit,martinpitt/cockpit,SotolitoLabs/cockpit,jscotka/cockpit,stefwalter/cockpit,larskarlitski/cockpit,moraleslazaro/cockpit,maxamillion/cockpit,firebitsbr/cockpit,dperpeet/cockpit,firebitsbr/cockpit,Scribery/cockpit,Armstrong1992/cockpit,michalskrivanek/cockpit,larsu/cockpit,moraleslazaro/cockpit,arilivigni/cockpit,moraleslazaro/cockpit,SotolitoLabs/cockpit,sgallagher/cockpit,deryni/cockpit,maxamillion/cockpit,cockpituous/cockpit,arilivigni/cockpit,andreasn/cockpit,nmav/cockpit,petervo/cockpit,vanloswang/cockpit,nmav/cockpit,fridex/cockpit,deryni/cockpit,stefwalter/cockpit,cockpit-project/cockpit,xhad/cockpit,dperpeet/cockpit,stefwalter/cockpit,harishanand95/cockpit,garrett/cockpit,mvollmer/cockpit,SotolitoLabs/cockpit,xhad/cockpit,dperpeet/cockpit,matobet/cockpit,Thermionix/cockpit,darioajr/cockpit,haiyangd/cockpit_view,larskarlitski/cockpit,larsu/cockpit,harishanand95/cockpit,andreasn/cockpit,cockpit-project/cockpit,martinpitt/cockpit,moolitayer/cockpit,michalskrivanek/cockpit,sgallagher/cockpit,netzvieh/cockpit,SotolitoLabs/cockpit,zigitax/cockpit,andreasn/cockpit,vbatts/cockpit,petervo/cockpit,petervo/cockpit,darioajr/cockpit,jscotka/cockpit,dperpeet/cockpit,evol262/cockpit,zigitax/cockpit,Scribery/cockpit,mareklibra/cockpit,Thermionix/cockpit,Thermionix/cockpit,andreasn/cockpit,evol262/cockpit,vbatts/cockpit,netzvieh/cockpit,Scribery/cockpit,garrett/cockpit,cockpituous/cockpit,moraleslazaro/cockpit,harishanand95/cockpit,maxamillion/cockpit,netzvieh/cockpit,evol262/cockpit,denysvitali/cockpit,mvollmer/cockpit,firebitsbr/cockpit,zigitax/cockpit