envoy: Differentiate between ACKs and NACKs.
envoy: Differentiate between ACKs and NACKs.

Since the last update on the cilium agent envoy API code, the behavior
had changed to keep sending the same resource version over and over if
Envoy rejects the resource. Fix this by properly differentiating
between ACKs and NACKs. A NACK now causes a watcher to wait until the
resource is updated before sending it over again.

This was found due to the new policy resources failing protobuf
content validation that Envoy checks for.

We should test for the NACK behavior as well to prevent future
regressions.

Signed-off-by: Jarno Rajahalme <0f1ab0ac7dffd9db21aa539af2fd4bb04abc3ad4@covalent.io>

tgraf/cilium,cilium/cilium,tklauser/cilium,scanf/cilium,michi-covalent/cilium,eloycoto/cilium,eloycoto/cilium,cilium/cilium,scanf/cilium,cilium-team/cilium,scanf/cilium,tklauser/cilium,michi-covalent/cilium,eloycoto/cilium,michi-covalent/cilium,tgraf/cilium,cilium/cilium,tklauser/cilium,scanf/cilium,eloycoto/cilium,tgraf/cilium,cilium-team/cilium,cilium/cilium,eloycoto/cilium,michi-covalent/cilium,eloycoto/cilium,tklauser/cilium,tklauser/cilium,tgraf/cilium,scanf/cilium,scanf/cilium,scanf/cilium,eloycoto/cilium,tgraf/cilium,michi-covalent/cilium,tgraf/cilium,cilium/cilium