proxy: Release redirect sooner.
proxy: Release redirect sooner.

So far we have kept two references to each Redirect, one in both maps
'allocatedPorts' and 'redirects'. The redirect is only ever accessed
through 'redirects', so we can remove the pointer from
'allocatedPorts'. Replace the pointer in 'allocatedPorts' with an
empty struct instead. This has the effect of releasing the last
reference to a Redirect as soon as it is closed as opposed to the
after 'portReleaseDelay', the time we keep a port number allocated to
avoid reusing it too soon.

'portReleaseDelay' is renamed as 'portReuseDelay' as the port was
already released by closing (Kafka) or otherwise making it available
for reuse (draining in Envoy) it as soon as the redirect
implementation was closed within RemoveRedirect() before waiting for
the delay.

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

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